@agentuity/runtime 0.1.0 → 0.1.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.
@@ -3,7 +3,7 @@
3
3
  * Extracted from _server.ts to be used by generated entry files
4
4
  */
5
5
  import { cors } from 'hono/cors';
6
- import type { Env, CompressionConfig } from './app';
6
+ import type { Env, CompressionConfig, CorsConfig } from './app';
7
7
  import type { Logger } from './logger';
8
8
  import { Meter, Tracer } from '@opentelemetry/api';
9
9
  export declare const AGENT_CONTEXT_PROPERTIES: readonly ["logger", "tracer", "sessionId", "kv", "stream", "vector", "sandbox", "state", "thread", "session", "config", "app", "waitUntil"];
@@ -54,7 +54,7 @@ export declare function createBaseMiddleware(config: MiddlewareConfig): import("
54
54
  * }));
55
55
  * ```
56
56
  */
57
- export declare function createCorsMiddleware(staticOptions?: Parameters<typeof cors>[0]): import("hono").MiddlewareHandler<Env<any>, string, {}, Response>;
57
+ export declare function createCorsMiddleware(staticOptions?: CorsConfig): import("hono").MiddlewareHandler<Env<any>, string, {}, Response>;
58
58
  /**
59
59
  * Create OpenTelemetry middleware for session/thread tracking
60
60
  * This is the critical middleware that creates AgentContext
@@ -83,17 +83,18 @@ export declare function createOtelMiddleware(): import("hono").MiddlewareHandler
83
83
  */
84
84
  export declare function createCompressionMiddleware(staticConfig?: CompressionConfig): import("hono").MiddlewareHandler<Env<any>, string, {}, Response>;
85
85
  /**
86
- * Create lightweight session middleware for web routes (analytics).
86
+ * Create lightweight thread middleware for web routes (analytics).
87
87
  *
88
- * Sets session and thread cookies that persist across page views.
89
- * This is a lighter-weight alternative to createOtelMiddleware for
90
- * routes that don't need full tracing but need session/thread tracking.
88
+ * Sets thread cookie that persists across page views for client-side analytics.
89
+ * This middleware does NOT:
90
+ * - Create or track sessions (no session ID)
91
+ * - Set session/thread response headers
92
+ * - Send events to Catalyst sessions table
91
93
  *
92
- * Uses the existing ThreadIDProvider for thread ID generation to ensure
93
- * consistency with the OTel middleware.
94
+ * This is intentionally separate from createOtelMiddleware to avoid
95
+ * polluting the sessions table with web browsing activity.
94
96
  *
95
- * - Session cookie (asid): Per browser session, 30-minute sliding expiry
96
- * - Thread cookie (atid): Managed by ThreadIDProvider, 1-week expiry
97
+ * - Thread cookie (atid_a): Analytics-readable copy, 1-week expiry
97
98
  */
98
99
  export declare function createWebSessionMiddleware(): import("hono").MiddlewareHandler<Env<any>, string, {}, Response>;
99
100
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAMvC,OAAO,EAMN,KAAK,EACL,MAAM,EACN,MAAM,oBAAoB,CAAC;AAU5B,eAAO,MAAM,wBAAwB,6IAc3B,CAAC;AAuBX,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,oEAqD5D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,oEAoC9E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,qEA8JnC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,2BAA2B,CAAC,YAAY,CAAC,EAAE,iBAAiB,oEAkD3E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,qEAiDzC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAMvC,OAAO,EAMN,KAAK,EACL,MAAM,EACN,MAAM,oBAAoB,CAAC;AAW5B,eAAO,MAAM,wBAAwB,6IAc3B,CAAC;AAuBX,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,oEAqD5D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,CAAC,EAAE,UAAU,oEA6E9D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,qEAuMnC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,2BAA2B,CAAC,YAAY,CAAC,EAAE,iBAAiB,oEAkD3E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,qEA6BzC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
@@ -5,7 +5,8 @@
5
5
  import { createMiddleware } from 'hono/factory';
6
6
  import { cors } from 'hono/cors';
7
7
  import { compress } from 'hono/compress';
8
- import { getSignedCookie, setSignedCookie } from 'hono/cookie';
8
+ import { setSignedCookie } from 'hono/cookie';
9
+ import { createTrustedCorsOrigin } from './cors';
9
10
  import { getAppConfig } from './app';
10
11
  import { generateId } from './session';
11
12
  import { runInHTTPContext } from './_context';
@@ -16,6 +17,7 @@ import { TraceState } from '@opentelemetry/core';
16
17
  import * as runtimeConfig from './_config';
17
18
  import { getSessionEventProvider } from './_services';
18
19
  import { internal } from './logger/internal';
20
+ import { STREAM_DONE_PROMISE_KEY, IS_STREAMING_RESPONSE_KEY } from './handlers/sse';
19
21
  const SESSION_HEADER = 'x-session-id';
20
22
  const THREAD_HEADER = 'x-thread-id';
21
23
  const DEPLOYMENT_HEADER = 'x-deployment';
@@ -134,32 +136,70 @@ export function createCorsMiddleware(staticOptions) {
134
136
  return createMiddleware(async (c, next) => {
135
137
  // Lazy resolve: merge app config with static options
136
138
  const appConfig = getAppConfig();
139
+ const appCors = appConfig?.cors;
137
140
  const corsOptions = {
138
- ...appConfig?.cors,
141
+ ...appCors,
139
142
  ...staticOptions,
140
143
  };
144
+ // Extract Agentuity-specific options
145
+ const { sameOrigin, allowedOrigins, ...honoCorsOptions } = corsOptions;
146
+ // Determine origin handler based on sameOrigin setting
147
+ let originHandler;
148
+ if (sameOrigin) {
149
+ // Use trusted origins (env vars + allowedOrigins + same-origin)
150
+ originHandler = createTrustedCorsOrigin({ allowedOrigins });
151
+ }
152
+ else if (honoCorsOptions.origin !== undefined) {
153
+ // Use explicitly provided origin
154
+ originHandler = honoCorsOptions.origin;
155
+ }
156
+ else {
157
+ // Default: reflect any origin (backwards compatible)
158
+ originHandler = (origin) => origin;
159
+ }
160
+ // Required headers that must always be allowed/exposed for runtime functionality
161
+ const requiredAllowHeaders = [THREAD_HEADER];
162
+ const requiredExposeHeaders = [
163
+ TOKENS_HEADER,
164
+ DURATION_HEADER,
165
+ THREAD_HEADER,
166
+ SESSION_HEADER,
167
+ DEPLOYMENT_HEADER,
168
+ ];
169
+ // Default headers to allow (used if none specified)
170
+ const defaultAllowHeaders = [
171
+ 'Content-Type',
172
+ 'Authorization',
173
+ 'Accept',
174
+ 'Origin',
175
+ 'X-Requested-With',
176
+ ];
177
+ // Default headers to expose (used if none specified)
178
+ const defaultExposeHeaders = ['Content-Length'];
141
179
  const corsMiddleware = cors({
142
- origin: corsOptions?.origin ?? ((origin) => origin),
143
- allowHeaders: corsOptions?.allowHeaders ?? [
144
- 'Content-Type',
145
- 'Authorization',
146
- 'Accept',
147
- 'Origin',
148
- 'X-Requested-With',
149
- THREAD_HEADER,
180
+ ...honoCorsOptions,
181
+ origin: originHandler,
182
+ // Always include required headers, merge with user-provided or defaults
183
+ allowHeaders: [
184
+ ...(honoCorsOptions.allowHeaders ?? defaultAllowHeaders),
185
+ ...requiredAllowHeaders,
150
186
  ],
151
- allowMethods: ['POST', 'GET', 'OPTIONS', 'HEAD', 'PUT', 'DELETE', 'PATCH'],
187
+ allowMethods: honoCorsOptions.allowMethods ?? [
188
+ 'POST',
189
+ 'GET',
190
+ 'OPTIONS',
191
+ 'HEAD',
192
+ 'PUT',
193
+ 'DELETE',
194
+ 'PATCH',
195
+ ],
196
+ // Always include required headers, merge with user-provided or defaults
152
197
  exposeHeaders: [
153
- 'Content-Length',
154
- TOKENS_HEADER,
155
- DURATION_HEADER,
156
- THREAD_HEADER,
157
- SESSION_HEADER,
158
- DEPLOYMENT_HEADER,
198
+ ...(honoCorsOptions.exposeHeaders ?? defaultExposeHeaders),
199
+ ...requiredExposeHeaders,
159
200
  ],
160
- maxAge: 600,
161
- credentials: true,
162
- ...(corsOptions ?? {}),
201
+ maxAge: honoCorsOptions.maxAge ?? 600,
202
+ credentials: honoCorsOptions.credentials ?? true,
163
203
  });
164
204
  return corsMiddleware(c, next);
165
205
  });
@@ -248,29 +288,14 @@ export function createOtelMiddleware() {
248
288
  // Silently ignore session start errors - don't block request
249
289
  }
250
290
  }
251
- try {
252
- await next();
253
- // Save session/thread and send events
291
+ // Factor out finalization logic so it can run synchronously or deferred
292
+ const finalizeSession = async (statusCode) => {
254
293
  internal.info('[session] saving session %s (thread: %s)', sessionId, thread.id);
255
294
  await sessionProvider.save(session);
256
295
  internal.info('[session] session saved, now saving thread');
257
296
  await threadProvider.save(thread);
258
297
  internal.info('[session] thread saved');
259
- span.setStatus({ code: SpanStatusCode.OK });
260
- }
261
- catch (ex) {
262
- if (ex instanceof Error) {
263
- span.recordException(ex);
264
- }
265
- span.setStatus({
266
- code: SpanStatusCode.ERROR,
267
- message: ex.message ?? String(ex),
268
- });
269
- throw ex;
270
- }
271
- finally {
272
298
  // Send session complete event
273
- // The provider decides whether to actually send based on its requirements
274
299
  if (sessionEventProvider) {
275
300
  try {
276
301
  const userData = session.serializeUserData();
@@ -283,7 +308,7 @@ export function createOtelMiddleware() {
283
308
  await sessionEventProvider.complete({
284
309
  id: sessionId,
285
310
  threadId: isEmpty ? null : thread.id,
286
- statusCode: c.res?.status ?? 200,
311
+ statusCode: statusCode ?? c.res?.status ?? 200,
287
312
  agentIds: agentIds?.length ? agentIds : undefined,
288
313
  userData,
289
314
  });
@@ -294,6 +319,48 @@ export function createOtelMiddleware() {
294
319
  // Silently ignore session complete errors - don't block response
295
320
  }
296
321
  }
322
+ };
323
+ try {
324
+ await next();
325
+ // Check if this is a streaming response that needs deferred finalization
326
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
327
+ const streamDone = c.get(STREAM_DONE_PROMISE_KEY);
328
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
329
+ const isStreaming = Boolean(c.get(IS_STREAMING_RESPONSE_KEY));
330
+ if (isStreaming && streamDone) {
331
+ // Defer session/thread saving until stream completes
332
+ // This ensures thread state changes made during streaming are persisted
333
+ internal.info('[session] deferring session/thread save until streaming completes (session %s)', sessionId);
334
+ handler.waitUntil(async () => {
335
+ try {
336
+ await streamDone;
337
+ internal.info('[session] stream completed, now saving session/thread (session %s)', sessionId);
338
+ }
339
+ catch (ex) {
340
+ // Stream ended with an error/abort; still try to persist the latest state
341
+ internal.info('[session] stream ended with error, still saving state: %s', ex);
342
+ }
343
+ await finalizeSession();
344
+ });
345
+ span.setStatus({ code: SpanStatusCode.OK });
346
+ }
347
+ else {
348
+ // Non-streaming: save session/thread synchronously (existing behavior)
349
+ await finalizeSession();
350
+ span.setStatus({ code: SpanStatusCode.OK });
351
+ }
352
+ }
353
+ catch (ex) {
354
+ if (ex instanceof Error) {
355
+ span.recordException(ex);
356
+ }
357
+ span.setStatus({
358
+ code: SpanStatusCode.ERROR,
359
+ message: ex.message ?? String(ex),
360
+ });
361
+ throw ex;
362
+ }
363
+ finally {
297
364
  const headers = {};
298
365
  propagation.inject(context.active(), headers);
299
366
  for (const key of Object.keys(headers)) {
@@ -371,17 +438,18 @@ export function createCompressionMiddleware(staticConfig) {
371
438
  });
372
439
  }
373
440
  /**
374
- * Create lightweight session middleware for web routes (analytics).
441
+ * Create lightweight thread middleware for web routes (analytics).
375
442
  *
376
- * Sets session and thread cookies that persist across page views.
377
- * This is a lighter-weight alternative to createOtelMiddleware for
378
- * routes that don't need full tracing but need session/thread tracking.
443
+ * Sets thread cookie that persists across page views for client-side analytics.
444
+ * This middleware does NOT:
445
+ * - Create or track sessions (no session ID)
446
+ * - Set session/thread response headers
447
+ * - Send events to Catalyst sessions table
379
448
  *
380
- * Uses the existing ThreadIDProvider for thread ID generation to ensure
381
- * consistency with the OTel middleware.
449
+ * This is intentionally separate from createOtelMiddleware to avoid
450
+ * polluting the sessions table with web browsing activity.
382
451
  *
383
- * - Session cookie (asid): Per browser session, 30-minute sliding expiry
384
- * - Thread cookie (atid): Managed by ThreadIDProvider, 1-week expiry
452
+ * - Thread cookie (atid_a): Analytics-readable copy, 1-week expiry
385
453
  */
386
454
  export function createWebSessionMiddleware() {
387
455
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -389,39 +457,22 @@ export function createWebSessionMiddleware() {
389
457
  // Import providers dynamically to avoid circular deps
390
458
  const { getThreadProvider } = await import('./_services');
391
459
  const secret = getSessionSecret();
392
- // Check for existing session cookie
393
- let sessionId = await getSignedCookie(c, secret, 'asid');
394
- if (!sessionId || typeof sessionId !== 'string') {
395
- sessionId = generateId('sess');
396
- }
397
460
  // Use ThreadProvider.restore() to get/create thread (handles header, cookie, generation)
398
461
  const threadProvider = getThreadProvider();
399
462
  const thread = await threadProvider.restore(c);
400
- // Set session cookie with sliding expiry
401
- // httpOnly: false so beacon script can read it for analytics
463
+ // Set thread cookie for analytics
464
+ // httpOnly: false so beacon script can read it
402
465
  const isSecure = c.req.url.startsWith('https://');
403
- await setSignedCookie(c, 'asid', sessionId, secret, {
404
- httpOnly: false, // Readable by JavaScript for analytics
405
- secure: isSecure,
406
- sameSite: 'Lax',
407
- path: '/',
408
- maxAge: 30 * 60, // 30 minutes
409
- });
410
- // Note: Thread cookie is set by ThreadProvider with httpOnly: true
411
- // We need a readable copy for analytics
412
466
  await setSignedCookie(c, 'atid_a', thread.id, secret, {
413
467
  httpOnly: false, // Readable by JavaScript for analytics
414
468
  secure: isSecure,
415
469
  sameSite: 'Lax',
416
470
  path: '/',
417
- maxAge: 604800, // 1 week (same as thread)
471
+ maxAge: 604800, // 1 week
418
472
  });
419
- // Set in context for access by handlers (use existing Variables types)
420
- c.set('sessionId', sessionId);
421
- c.set('thread', thread);
422
- // Set response headers for debugging/tracing
423
- c.header(SESSION_HEADER, sessionId);
424
- c.header(THREAD_HEADER, thread.id);
473
+ // Store in context for handler to access in same request
474
+ // (cookies aren't readable until the next request)
475
+ c.set('_webThreadId', thread.id);
425
476
  await next();
426
477
  });
427
478
  }
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentuity/runtime",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Agentuity employees and contributors",
6
6
  "type": "module",
@@ -26,10 +26,10 @@
26
26
  "prepublishOnly": "bun run clean && bun run build"
27
27
  },
28
28
  "dependencies": {
29
- "@agentuity/auth": "0.1.0",
30
- "@agentuity/core": "0.1.0",
31
- "@agentuity/schema": "0.1.0",
32
- "@agentuity/server": "0.1.0",
29
+ "@agentuity/auth": "0.1.1",
30
+ "@agentuity/core": "0.1.1",
31
+ "@agentuity/schema": "0.1.1",
32
+ "@agentuity/server": "0.1.1",
33
33
  "@opentelemetry/api": "^1.9.0",
34
34
  "@opentelemetry/api-logs": "^0.207.0",
35
35
  "@opentelemetry/auto-instrumentations-node": "^0.66.0",
@@ -51,7 +51,7 @@
51
51
  "zod": "^4.3.5"
52
52
  },
53
53
  "devDependencies": {
54
- "@agentuity/test-utils": "0.1.0",
54
+ "@agentuity/test-utils": "0.1.1",
55
55
  "@types/bun": "latest",
56
56
  "@types/react": "^19.2.2",
57
57
  "@types/react-dom": "^19.2.2",
package/src/app.ts CHANGED
@@ -18,9 +18,63 @@ import type { ThreadProvider, SessionProvider, Session, Thread } from './session
18
18
  import type WaitUntilHandler from './_waituntil';
19
19
  import type { Context } from 'hono';
20
20
 
21
- type CorsOptions = Parameters<typeof cors>[0];
21
+ type HonoCorsOptions = NonNullable<Parameters<typeof cors>[0]>;
22
22
  type HonoCompressOptions = Parameters<typeof compress>[0];
23
23
 
24
+ /**
25
+ * Agentuity-specific CORS options for same-origin restriction.
26
+ */
27
+ export interface AgentuityCorsSameOriginOptions {
28
+ /**
29
+ * Enable same-origin restriction for CORS.
30
+ *
31
+ * When true, only allows origins from:
32
+ * - AGENTUITY_BASE_URL environment variable
33
+ * - AGENTUITY_CLOUD_DOMAINS environment variable (comma-separated)
34
+ * - AUTH_TRUSTED_DOMAINS environment variable (comma-separated)
35
+ * - The same-origin of the incoming request URL
36
+ * - Any additional origins specified in `allowedOrigins`
37
+ *
38
+ * When false or omitted, the default behavior is to reflect any origin
39
+ * (backwards compatible).
40
+ *
41
+ * @default false
42
+ */
43
+ sameOrigin?: boolean;
44
+
45
+ /**
46
+ * Additional origins to allow when `sameOrigin` is true.
47
+ * Can be full URLs (https://example.com) or bare domains (example.com).
48
+ *
49
+ * These are merged with the origins derived from environment variables.
50
+ */
51
+ allowedOrigins?: string[];
52
+ }
53
+
54
+ /**
55
+ * Extended CORS configuration options.
56
+ *
57
+ * Combines Hono's CORS options with Agentuity-specific settings for
58
+ * easy same-origin restriction.
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * // Simple opt-in to trusted origins only
63
+ * const app = await createApp({
64
+ * cors: { sameOrigin: true }
65
+ * });
66
+ *
67
+ * // With additional allowed origins
68
+ * const app = await createApp({
69
+ * cors: {
70
+ * sameOrigin: true,
71
+ * allowedOrigins: ['https://admin.myapp.com'],
72
+ * }
73
+ * });
74
+ * ```
75
+ */
76
+ export type CorsConfig = HonoCorsOptions & AgentuityCorsSameOriginOptions;
77
+
24
78
  /**
25
79
  * Configuration options for response compression middleware.
26
80
  *
@@ -68,9 +122,28 @@ export interface CompressionConfig {
68
122
 
69
123
  export interface AppConfig<TAppState = Record<string, never>> {
70
124
  /**
71
- * Override the default cors settings
125
+ * Configure CORS (Cross-Origin Resource Sharing) settings.
126
+ *
127
+ * By default, CORS reflects any origin (backwards compatible).
128
+ * Use `sameOrigin: true` to restrict to trusted origins only.
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * // Restrict to trusted origins (recommended for production)
133
+ * const app = await createApp({
134
+ * cors: { sameOrigin: true }
135
+ * });
136
+ *
137
+ * // Add additional allowed origins
138
+ * const app = await createApp({
139
+ * cors: {
140
+ * sameOrigin: true,
141
+ * allowedOrigins: ['https://admin.myapp.com'],
142
+ * }
143
+ * });
144
+ * ```
72
145
  */
73
- cors?: CorsOptions;
146
+ cors?: CorsConfig;
74
147
  /**
75
148
  * Configure response compression.
76
149
  * Set to `false` to disable compression entirely.
@@ -155,6 +228,8 @@ export interface Variables<TAppState = Record<string, never>> {
155
228
  vector: VectorStorage;
156
229
  sandbox: SandboxService;
157
230
  app: TAppState;
231
+ // Web analytics context (set by createWebSessionMiddleware, thread-only tracking)
232
+ _webThreadId?: string;
158
233
  }
159
234
 
160
235
  export type TriggerType = SessionStartEvent['trigger'];
@@ -373,6 +448,18 @@ export function getAppConfig<TAppState = any>(): AppConfig<TAppState> | undefine
373
448
  return (globalThis as any).__AGENTUITY_APP_CONFIG__;
374
449
  }
375
450
 
451
+ /**
452
+ * Set the global app config (for testing purposes)
453
+ * @internal
454
+ */
455
+ export function setAppConfig<TAppState = any>(config: AppConfig<TAppState> | undefined): void {
456
+ if (config === undefined) {
457
+ delete (globalThis as any).__AGENTUITY_APP_CONFIG__;
458
+ } else {
459
+ (globalThis as any).__AGENTUITY_APP_CONFIG__ = config;
460
+ }
461
+ }
462
+
376
463
  /**
377
464
  * Run the global shutdown function
378
465
  * Called by generated entry file on cleanup