@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.
- package/dist/app.d.ts +79 -3
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +12 -0
- package/dist/app.js.map +1 -1
- package/dist/cors.d.ts +42 -0
- package/dist/cors.d.ts.map +1 -0
- package/dist/cors.js +117 -0
- package/dist/cors.js.map +1 -0
- package/dist/handlers/index.d.ts +1 -1
- package/dist/handlers/index.d.ts.map +1 -1
- package/dist/handlers/index.js +1 -1
- package/dist/handlers/index.js.map +1 -1
- package/dist/handlers/sse.d.ts +11 -0
- package/dist/handlers/sse.d.ts.map +1 -1
- package/dist/handlers/sse.js +76 -3
- package/dist/handlers/sse.js.map +1 -1
- package/dist/handlers/stream.d.ts.map +1 -1
- package/dist/handlers/stream.js +30 -0
- package/dist/handlers/stream.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/middleware.d.ts +11 -10
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +120 -69
- package/dist/middleware.js.map +1 -1
- package/package.json +6 -6
- package/src/app.ts +90 -3
- package/src/cors.ts +137 -0
- package/src/handlers/index.ts +8 -1
- package/src/handlers/sse.ts +78 -3
- package/src/handlers/stream.ts +31 -0
- package/src/index.ts +4 -0
- package/src/middleware.ts +137 -72
package/dist/app.d.ts
CHANGED
|
@@ -7,8 +7,59 @@ import type { KeyValueStorage, SessionEventProvider, EvalRunEventProvider, Strea
|
|
|
7
7
|
import type { ThreadProvider, SessionProvider, Session, Thread } from './session';
|
|
8
8
|
import type WaitUntilHandler from './_waituntil';
|
|
9
9
|
import type { Context } from 'hono';
|
|
10
|
-
type
|
|
10
|
+
type HonoCorsOptions = NonNullable<Parameters<typeof cors>[0]>;
|
|
11
11
|
type HonoCompressOptions = Parameters<typeof compress>[0];
|
|
12
|
+
/**
|
|
13
|
+
* Agentuity-specific CORS options for same-origin restriction.
|
|
14
|
+
*/
|
|
15
|
+
export interface AgentuityCorsSameOriginOptions {
|
|
16
|
+
/**
|
|
17
|
+
* Enable same-origin restriction for CORS.
|
|
18
|
+
*
|
|
19
|
+
* When true, only allows origins from:
|
|
20
|
+
* - AGENTUITY_BASE_URL environment variable
|
|
21
|
+
* - AGENTUITY_CLOUD_DOMAINS environment variable (comma-separated)
|
|
22
|
+
* - AUTH_TRUSTED_DOMAINS environment variable (comma-separated)
|
|
23
|
+
* - The same-origin of the incoming request URL
|
|
24
|
+
* - Any additional origins specified in `allowedOrigins`
|
|
25
|
+
*
|
|
26
|
+
* When false or omitted, the default behavior is to reflect any origin
|
|
27
|
+
* (backwards compatible).
|
|
28
|
+
*
|
|
29
|
+
* @default false
|
|
30
|
+
*/
|
|
31
|
+
sameOrigin?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Additional origins to allow when `sameOrigin` is true.
|
|
34
|
+
* Can be full URLs (https://example.com) or bare domains (example.com).
|
|
35
|
+
*
|
|
36
|
+
* These are merged with the origins derived from environment variables.
|
|
37
|
+
*/
|
|
38
|
+
allowedOrigins?: string[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Extended CORS configuration options.
|
|
42
|
+
*
|
|
43
|
+
* Combines Hono's CORS options with Agentuity-specific settings for
|
|
44
|
+
* easy same-origin restriction.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* // Simple opt-in to trusted origins only
|
|
49
|
+
* const app = await createApp({
|
|
50
|
+
* cors: { sameOrigin: true }
|
|
51
|
+
* });
|
|
52
|
+
*
|
|
53
|
+
* // With additional allowed origins
|
|
54
|
+
* const app = await createApp({
|
|
55
|
+
* cors: {
|
|
56
|
+
* sameOrigin: true,
|
|
57
|
+
* allowedOrigins: ['https://admin.myapp.com'],
|
|
58
|
+
* }
|
|
59
|
+
* });
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export type CorsConfig = HonoCorsOptions & AgentuityCorsSameOriginOptions;
|
|
12
63
|
/**
|
|
13
64
|
* Configuration options for response compression middleware.
|
|
14
65
|
*
|
|
@@ -52,9 +103,28 @@ export interface CompressionConfig {
|
|
|
52
103
|
}
|
|
53
104
|
export interface AppConfig<TAppState = Record<string, never>> {
|
|
54
105
|
/**
|
|
55
|
-
*
|
|
106
|
+
* Configure CORS (Cross-Origin Resource Sharing) settings.
|
|
107
|
+
*
|
|
108
|
+
* By default, CORS reflects any origin (backwards compatible).
|
|
109
|
+
* Use `sameOrigin: true` to restrict to trusted origins only.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```typescript
|
|
113
|
+
* // Restrict to trusted origins (recommended for production)
|
|
114
|
+
* const app = await createApp({
|
|
115
|
+
* cors: { sameOrigin: true }
|
|
116
|
+
* });
|
|
117
|
+
*
|
|
118
|
+
* // Add additional allowed origins
|
|
119
|
+
* const app = await createApp({
|
|
120
|
+
* cors: {
|
|
121
|
+
* sameOrigin: true,
|
|
122
|
+
* allowedOrigins: ['https://admin.myapp.com'],
|
|
123
|
+
* }
|
|
124
|
+
* });
|
|
125
|
+
* ```
|
|
56
126
|
*/
|
|
57
|
-
cors?:
|
|
127
|
+
cors?: CorsConfig;
|
|
58
128
|
/**
|
|
59
129
|
* Configure response compression.
|
|
60
130
|
* Set to `false` to disable compression entirely.
|
|
@@ -137,6 +207,7 @@ export interface Variables<TAppState = Record<string, never>> {
|
|
|
137
207
|
vector: VectorStorage;
|
|
138
208
|
sandbox: SandboxService;
|
|
139
209
|
app: TAppState;
|
|
210
|
+
_webThreadId?: string;
|
|
140
211
|
}
|
|
141
212
|
export type TriggerType = SessionStartEvent['trigger'];
|
|
142
213
|
export interface PrivateVariables {
|
|
@@ -238,6 +309,11 @@ export declare function getAppState<TAppState = any>(): TAppState;
|
|
|
238
309
|
* Used by generated entry file for middleware setup
|
|
239
310
|
*/
|
|
240
311
|
export declare function getAppConfig<TAppState = any>(): AppConfig<TAppState> | undefined;
|
|
312
|
+
/**
|
|
313
|
+
* Set the global app config (for testing purposes)
|
|
314
|
+
* @internal
|
|
315
|
+
*/
|
|
316
|
+
export declare function setAppConfig<TAppState = any>(config: AppConfig<TAppState> | undefined): void;
|
|
241
317
|
/**
|
|
242
318
|
* Run the global shutdown function
|
|
243
319
|
* Called by generated entry file on cleanup
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,GAAG,IAAI,OAAO,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EACX,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,KAAK,gBAAgB,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,KAAK,
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/app.js
CHANGED
|
@@ -134,6 +134,18 @@ export function getAppState() {
|
|
|
134
134
|
export function getAppConfig() {
|
|
135
135
|
return globalThis.__AGENTUITY_APP_CONFIG__;
|
|
136
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Set the global app config (for testing purposes)
|
|
139
|
+
* @internal
|
|
140
|
+
*/
|
|
141
|
+
export function setAppConfig(config) {
|
|
142
|
+
if (config === undefined) {
|
|
143
|
+
delete globalThis.__AGENTUITY_APP_CONFIG__;
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
globalThis.__AGENTUITY_APP_CONFIG__ = config;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
137
149
|
/**
|
|
138
150
|
* Run the global shutdown function
|
|
139
151
|
* Called by generated entry file on cleanup
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/cors.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CORS trusted origin helpers for same-origin configuration.
|
|
3
|
+
*
|
|
4
|
+
* Provides the same trusted-origin logic as @agentuity/auth,
|
|
5
|
+
* allowing CORS to be restricted to platform-trusted domains.
|
|
6
|
+
*/
|
|
7
|
+
import type { Context } from 'hono';
|
|
8
|
+
/**
|
|
9
|
+
* Options for createTrustedCorsOrigin.
|
|
10
|
+
*/
|
|
11
|
+
export interface TrustedCorsOriginOptions {
|
|
12
|
+
/**
|
|
13
|
+
* Additional origins to allow on top of environment-derived ones.
|
|
14
|
+
* Can be full URLs (https://example.com) or bare domains (example.com).
|
|
15
|
+
*/
|
|
16
|
+
allowedOrigins?: string[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Create a Hono CORS origin callback that only allows trusted origins.
|
|
20
|
+
*
|
|
21
|
+
* Trusted origins are derived from:
|
|
22
|
+
* - AGENTUITY_BASE_URL environment variable
|
|
23
|
+
* - AGENTUITY_CLOUD_DOMAINS environment variable (comma-separated)
|
|
24
|
+
* - AUTH_TRUSTED_DOMAINS environment variable (comma-separated)
|
|
25
|
+
* - The same-origin of the incoming request URL
|
|
26
|
+
* - Any additional origins specified in allowedOrigins option
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* import { createApp, createTrustedCorsOrigin } from '@agentuity/runtime';
|
|
31
|
+
*
|
|
32
|
+
* await createApp({
|
|
33
|
+
* cors: {
|
|
34
|
+
* origin: createTrustedCorsOrigin({
|
|
35
|
+
* allowedOrigins: ['https://admin.myapp.com'],
|
|
36
|
+
* }),
|
|
37
|
+
* },
|
|
38
|
+
* });
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function createTrustedCorsOrigin(options?: TrustedCorsOriginOptions): (origin: string, c: Context) => string | undefined;
|
|
42
|
+
//# sourceMappingURL=cors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../src/cors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAwEpC;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACxC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,uBAAuB,CACtC,OAAO,CAAC,EAAE,wBAAwB,GAChC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAqBpD"}
|
package/dist/cors.js
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CORS trusted origin helpers for same-origin configuration.
|
|
3
|
+
*
|
|
4
|
+
* Provides the same trusted-origin logic as @agentuity/auth,
|
|
5
|
+
* allowing CORS to be restricted to platform-trusted domains.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Safely extract origin from a URL string.
|
|
9
|
+
* Returns undefined if the URL is invalid.
|
|
10
|
+
*/
|
|
11
|
+
function safeOrigin(url) {
|
|
12
|
+
if (!url)
|
|
13
|
+
return undefined;
|
|
14
|
+
try {
|
|
15
|
+
return new URL(url).origin;
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Parse an origin-like value (URL or bare domain) into a normalized origin.
|
|
23
|
+
*
|
|
24
|
+
* - Full URLs (http://... or https://...) are parsed as-is
|
|
25
|
+
* - Bare domains (example.com) are treated as https://
|
|
26
|
+
* - Invalid values return undefined
|
|
27
|
+
*/
|
|
28
|
+
function parseOriginLike(value) {
|
|
29
|
+
const trimmed = value.trim();
|
|
30
|
+
if (!trimmed)
|
|
31
|
+
return undefined;
|
|
32
|
+
// If it looks like a URL (has a scheme), parse directly
|
|
33
|
+
if (/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//.test(trimmed)) {
|
|
34
|
+
return safeOrigin(trimmed);
|
|
35
|
+
}
|
|
36
|
+
// Otherwise, treat as host[:port] and assume https
|
|
37
|
+
return safeOrigin(`https://${trimmed}`);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Build the static trusted origins set from environment variables.
|
|
41
|
+
*
|
|
42
|
+
* Reads from:
|
|
43
|
+
* - AGENTUITY_BASE_URL - The base URL for the deployment
|
|
44
|
+
* - AGENTUITY_CLOUD_DOMAINS - Platform-set domains (comma-separated)
|
|
45
|
+
* - AUTH_TRUSTED_DOMAINS - Developer-set additional domains (comma-separated)
|
|
46
|
+
*/
|
|
47
|
+
function buildEnvTrustedOrigins() {
|
|
48
|
+
const agentuityURL = process.env.AGENTUITY_BASE_URL;
|
|
49
|
+
const cloudDomains = process.env.AGENTUITY_CLOUD_DOMAINS;
|
|
50
|
+
const devTrustedDomains = process.env.AUTH_TRUSTED_DOMAINS;
|
|
51
|
+
const origins = new Set();
|
|
52
|
+
const agentuityOrigin = safeOrigin(agentuityURL);
|
|
53
|
+
if (agentuityOrigin)
|
|
54
|
+
origins.add(agentuityOrigin);
|
|
55
|
+
// Platform-set cloud domains (deployment, project, PR, custom domains, tunnels)
|
|
56
|
+
if (cloudDomains) {
|
|
57
|
+
for (const raw of cloudDomains.split(',')) {
|
|
58
|
+
const origin = parseOriginLike(raw);
|
|
59
|
+
if (origin)
|
|
60
|
+
origins.add(origin);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Developer-set additional trusted domains
|
|
64
|
+
if (devTrustedDomains) {
|
|
65
|
+
for (const raw of devTrustedDomains.split(',')) {
|
|
66
|
+
const origin = parseOriginLike(raw);
|
|
67
|
+
if (origin)
|
|
68
|
+
origins.add(origin);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return origins;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Create a Hono CORS origin callback that only allows trusted origins.
|
|
75
|
+
*
|
|
76
|
+
* Trusted origins are derived from:
|
|
77
|
+
* - AGENTUITY_BASE_URL environment variable
|
|
78
|
+
* - AGENTUITY_CLOUD_DOMAINS environment variable (comma-separated)
|
|
79
|
+
* - AUTH_TRUSTED_DOMAINS environment variable (comma-separated)
|
|
80
|
+
* - The same-origin of the incoming request URL
|
|
81
|
+
* - Any additional origins specified in allowedOrigins option
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* import { createApp, createTrustedCorsOrigin } from '@agentuity/runtime';
|
|
86
|
+
*
|
|
87
|
+
* await createApp({
|
|
88
|
+
* cors: {
|
|
89
|
+
* origin: createTrustedCorsOrigin({
|
|
90
|
+
* allowedOrigins: ['https://admin.myapp.com'],
|
|
91
|
+
* }),
|
|
92
|
+
* },
|
|
93
|
+
* });
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export function createTrustedCorsOrigin(options) {
|
|
97
|
+
// Build static origins from env vars at creation time
|
|
98
|
+
const baseOrigins = buildEnvTrustedOrigins();
|
|
99
|
+
// Add any extra origins from options
|
|
100
|
+
if (options?.allowedOrigins) {
|
|
101
|
+
for (const raw of options.allowedOrigins) {
|
|
102
|
+
const origin = parseOriginLike(raw);
|
|
103
|
+
if (origin)
|
|
104
|
+
baseOrigins.add(origin);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return (origin, c) => {
|
|
108
|
+
// Build allowed set per-request to include same-origin of the server
|
|
109
|
+
const allowed = new Set(baseOrigins);
|
|
110
|
+
const requestOrigin = safeOrigin(c.req.url);
|
|
111
|
+
if (requestOrigin)
|
|
112
|
+
allowed.add(requestOrigin);
|
|
113
|
+
// Only echo back if trusted; otherwise return undefined (no CORS header)
|
|
114
|
+
return allowed.has(origin) ? origin : undefined;
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=cors.js.map
|
package/dist/cors.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors.js","sourceRoot":"","sources":["../src/cors.ts"],"names":[],"mappings":"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"}
|
package/dist/handlers/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { websocket, type WebSocketConnection, type WebSocketHandler } from './websocket';
|
|
2
|
-
export { sse, type SSEMessage, type SSEStream, type SSEHandler } from './sse';
|
|
2
|
+
export { sse, type SSEMessage, type SSEStream, type SSEHandler, STREAM_DONE_PROMISE_KEY, IS_STREAMING_RESPONSE_KEY, } from './sse';
|
|
3
3
|
export { stream, type StreamHandler } from './stream';
|
|
4
4
|
export { cron, type CronHandler, type CronMetadata } from './cron';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EACN,GAAG,EACH,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,UAAU,EACf,uBAAuB,EACvB,yBAAyB,GACzB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAC"}
|
package/dist/handlers/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmD,MAAM,aAAa,CAAC;AACzF,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmD,MAAM,aAAa,CAAC;AACzF,OAAO,EACN,GAAG,EAIH,uBAAuB,EACvB,yBAAyB,GACzB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,MAAM,EAAsB,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,IAAI,EAAuC,MAAM,QAAQ,CAAC"}
|
package/dist/handlers/sse.d.ts
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import type { Context, Handler } from 'hono';
|
|
2
2
|
import type { Env } from '../app';
|
|
3
|
+
/**
|
|
4
|
+
* Context variable key for stream completion promise.
|
|
5
|
+
* Used by middleware to defer session/thread saving until stream completes.
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export declare const STREAM_DONE_PROMISE_KEY = "_streamDonePromise";
|
|
9
|
+
/**
|
|
10
|
+
* Context variable key to indicate this is a streaming response.
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare const IS_STREAMING_RESPONSE_KEY = "_isStreamingResponse";
|
|
3
14
|
/**
|
|
4
15
|
* SSE message format for Server-Sent Events.
|
|
5
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/handlers/sse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG7C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAElC;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB;;;;OAIG;IACH,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE;;OAEG;IACH,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD;;OAEG;IACH,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACxC;;OAEG;IACH,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAC7C,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACb,MAAM,EAAE,SAAS,KACb,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/handlers/sse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG7C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAElC;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB;;;;OAIG;IACH,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE;;OAEG;IACH,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD;;OAEG;IACH,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACxC;;OAEG;IACH,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAC7C,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACb,MAAM,EAAE,SAAS,KACb,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAkG3E"}
|
package/dist/handlers/sse.js
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { streamSSE as honoStreamSSE } from 'hono/streaming';
|
|
2
2
|
import { getAgentAsyncLocalStorage } from '../_context';
|
|
3
|
+
/**
|
|
4
|
+
* Context variable key for stream completion promise.
|
|
5
|
+
* Used by middleware to defer session/thread saving until stream completes.
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export const STREAM_DONE_PROMISE_KEY = '_streamDonePromise';
|
|
9
|
+
/**
|
|
10
|
+
* Context variable key to indicate this is a streaming response.
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export const IS_STREAMING_RESPONSE_KEY = '_isStreamingResponse';
|
|
3
14
|
/**
|
|
4
15
|
* Creates an SSE (Server-Sent Events) middleware for streaming updates to clients.
|
|
5
16
|
*
|
|
@@ -37,8 +48,36 @@ export function sse(handler) {
|
|
|
37
48
|
return (c) => {
|
|
38
49
|
const asyncLocalStorage = getAgentAsyncLocalStorage();
|
|
39
50
|
const capturedContext = asyncLocalStorage.getStore();
|
|
51
|
+
// Track stream completion for deferred session/thread saving
|
|
52
|
+
// This promise resolves when the stream closes (normally or via abort)
|
|
53
|
+
let resolveDone;
|
|
54
|
+
let rejectDone;
|
|
55
|
+
const donePromise = new Promise((resolve, reject) => {
|
|
56
|
+
resolveDone = resolve;
|
|
57
|
+
rejectDone = reject;
|
|
58
|
+
});
|
|
59
|
+
// Idempotent function to mark stream as completed
|
|
60
|
+
let isDone = false;
|
|
61
|
+
const markDone = (error) => {
|
|
62
|
+
if (isDone)
|
|
63
|
+
return;
|
|
64
|
+
isDone = true;
|
|
65
|
+
if (error && rejectDone) {
|
|
66
|
+
rejectDone(error);
|
|
67
|
+
}
|
|
68
|
+
else if (resolveDone) {
|
|
69
|
+
resolveDone();
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
// Expose completion tracking to middleware
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
74
|
+
c.set(STREAM_DONE_PROMISE_KEY, donePromise);
|
|
75
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
76
|
+
c.set(IS_STREAMING_RESPONSE_KEY, true);
|
|
40
77
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
78
|
return honoStreamSSE(c, async (stream) => {
|
|
79
|
+
// Track if user registered an onAbort callback
|
|
80
|
+
let userAbortCallback;
|
|
42
81
|
const wrappedStream = {
|
|
43
82
|
write: async (data) => {
|
|
44
83
|
if (typeof data === 'string' ||
|
|
@@ -52,11 +91,45 @@ export function sse(handler) {
|
|
|
52
91
|
return stream.writeSSE({ data: String(data) });
|
|
53
92
|
},
|
|
54
93
|
writeSSE: stream.writeSSE.bind(stream),
|
|
55
|
-
onAbort:
|
|
56
|
-
|
|
94
|
+
onAbort: (callback) => {
|
|
95
|
+
userAbortCallback = callback;
|
|
96
|
+
stream.onAbort(() => {
|
|
97
|
+
try {
|
|
98
|
+
callback();
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
// Mark stream as done on abort
|
|
102
|
+
markDone();
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
},
|
|
106
|
+
close: () => {
|
|
107
|
+
try {
|
|
108
|
+
stream.close?.();
|
|
109
|
+
}
|
|
110
|
+
finally {
|
|
111
|
+
// Mark stream as done on close
|
|
112
|
+
markDone();
|
|
113
|
+
}
|
|
114
|
+
},
|
|
57
115
|
};
|
|
116
|
+
// Always register internal abort handler if user doesn't register one
|
|
117
|
+
// This ensures we track completion even if user doesn't call onAbort
|
|
118
|
+
stream.onAbort(() => {
|
|
119
|
+
if (!userAbortCallback) {
|
|
120
|
+
// Only mark done if user didn't register their own handler
|
|
121
|
+
// (their handler wrapper already calls markDone)
|
|
122
|
+
markDone();
|
|
123
|
+
}
|
|
124
|
+
});
|
|
58
125
|
const runInContext = async () => {
|
|
59
|
-
|
|
126
|
+
try {
|
|
127
|
+
await handler(c, wrappedStream);
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
markDone(err);
|
|
131
|
+
throw err;
|
|
132
|
+
}
|
|
60
133
|
};
|
|
61
134
|
if (capturedContext) {
|
|
62
135
|
await asyncLocalStorage.run(capturedContext, runInContext);
|
package/dist/handlers/sse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/handlers/sse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/handlers/sse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAGxD;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAE5D;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAsB,CAAC;AA6ChE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,GAAG,CAAsB,OAAsB;IAC9D,OAAO,CAAC,CAAa,EAAE,EAAE;QACxB,MAAM,iBAAiB,GAAG,yBAAyB,EAAE,CAAC;QACtD,MAAM,eAAe,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC;QAErD,6DAA6D;QAC7D,uEAAuE;QACvE,IAAI,WAAqC,CAAC;QAC1C,IAAI,UAAoD,CAAC;QACzD,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzD,WAAW,GAAG,OAAO,CAAC;YACtB,UAAU,GAAG,MAAM,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,kDAAkD;QAClD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,QAAQ,GAAG,CAAC,KAAe,EAAE,EAAE;YACpC,IAAI,MAAM;gBAAE,OAAO;YACnB,MAAM,GAAG,IAAI,CAAC;YACd,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;gBACzB,UAAU,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;iBAAM,IAAI,WAAW,EAAE,CAAC;gBACxB,WAAW,EAAE,CAAC;YACf,CAAC;QACF,CAAC,CAAC;QAEF,2CAA2C;QAC3C,8DAA8D;QAC7D,CAAS,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;QACrD,8DAA8D;QAC7D,CAAS,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;QAEhD,8DAA8D;QAC9D,OAAO,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;YAC7C,+CAA+C;YAC/C,IAAI,iBAA2C,CAAC;YAEhD,MAAM,aAAa,GAAc;gBAChC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;oBACrB,IACC,OAAO,IAAI,KAAK,QAAQ;wBACxB,OAAO,IAAI,KAAK,QAAQ;wBACxB,OAAO,IAAI,KAAK,SAAS,EACxB,CAAC;wBACF,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAChD,CAAC;yBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBACtD,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC9B,CAAC;oBACD,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChD,CAAC;gBACD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBACtC,OAAO,EAAE,CAAC,QAAoB,EAAE,EAAE;oBACjC,iBAAiB,GAAG,QAAQ,CAAC;oBAC7B,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;wBACnB,IAAI,CAAC;4BACJ,QAAQ,EAAE,CAAC;wBACZ,CAAC;gCAAS,CAAC;4BACV,+BAA+B;4BAC/B,QAAQ,EAAE,CAAC;wBACZ,CAAC;oBACF,CAAC,CAAC,CAAC;gBACJ,CAAC;gBACD,KAAK,EAAE,GAAG,EAAE;oBACX,IAAI,CAAC;wBACJ,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;oBAClB,CAAC;4BAAS,CAAC;wBACV,+BAA+B;wBAC/B,QAAQ,EAAE,CAAC;oBACZ,CAAC;gBACF,CAAC;aACD,CAAC;YAEF,sEAAsE;YACtE,qEAAqE;YACrE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;gBACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACxB,2DAA2D;oBAC3D,iDAAiD;oBACjD,QAAQ,EAAE,CAAC;gBACZ,CAAC;YACF,CAAC,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;gBAC/B,IAAI,CAAC;oBACJ,MAAM,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;gBACjC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACd,MAAM,GAAG,CAAC;gBACX,CAAC;YACF,CAAC,CAAC;YAEF,IAAI,eAAe,EAAE,CAAC;gBACrB,MAAM,iBAAiB,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACP,MAAM,YAAY,EAAE,CAAC;YACtB,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/handlers/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG7C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/handlers/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG7C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAGlC;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAChD,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KACT,cAAc,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC;AAExF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CA2DjF"}
|
package/dist/handlers/stream.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { stream as honoStream } from 'hono/streaming';
|
|
2
2
|
import { getAgentAsyncLocalStorage } from '../_context';
|
|
3
|
+
import { STREAM_DONE_PROMISE_KEY, IS_STREAMING_RESPONSE_KEY } from './sse';
|
|
3
4
|
/**
|
|
4
5
|
* Creates a streaming middleware for returning ReadableStream responses.
|
|
5
6
|
*
|
|
@@ -47,6 +48,32 @@ export function stream(handler) {
|
|
|
47
48
|
return (c) => {
|
|
48
49
|
const asyncLocalStorage = getAgentAsyncLocalStorage();
|
|
49
50
|
const capturedContext = asyncLocalStorage.getStore();
|
|
51
|
+
// Track stream completion for deferred session/thread saving
|
|
52
|
+
// This promise resolves when the stream completes (pipe finishes or errors)
|
|
53
|
+
let resolveDone;
|
|
54
|
+
let rejectDone;
|
|
55
|
+
const donePromise = new Promise((resolve, reject) => {
|
|
56
|
+
resolveDone = resolve;
|
|
57
|
+
rejectDone = reject;
|
|
58
|
+
});
|
|
59
|
+
// Idempotent function to mark stream as completed
|
|
60
|
+
let isDone = false;
|
|
61
|
+
const markDone = (error) => {
|
|
62
|
+
if (isDone)
|
|
63
|
+
return;
|
|
64
|
+
isDone = true;
|
|
65
|
+
if (error && rejectDone) {
|
|
66
|
+
rejectDone(error);
|
|
67
|
+
}
|
|
68
|
+
else if (resolveDone) {
|
|
69
|
+
resolveDone();
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
// Expose completion tracking to middleware
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
74
|
+
c.set(STREAM_DONE_PROMISE_KEY, donePromise);
|
|
75
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
76
|
+
c.set(IS_STREAMING_RESPONSE_KEY, true);
|
|
50
77
|
c.header('Content-Type', 'application/octet-stream');
|
|
51
78
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
52
79
|
return honoStream(c, async (s) => {
|
|
@@ -57,9 +84,12 @@ export function stream(handler) {
|
|
|
57
84
|
streamResult = await streamResult;
|
|
58
85
|
}
|
|
59
86
|
await s.pipe(streamResult);
|
|
87
|
+
// Stream completed successfully
|
|
88
|
+
markDone();
|
|
60
89
|
}
|
|
61
90
|
catch (err) {
|
|
62
91
|
c.var.logger?.error('Stream error:', err);
|
|
92
|
+
markDone(err);
|
|
63
93
|
throw err;
|
|
64
94
|
}
|
|
65
95
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/handlers/stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/handlers/stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,OAAO,CAAC;AAU3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,UAAU,MAAM,CAAsB,OAAyB;IACpE,OAAO,CAAC,CAAa,EAAE,EAAE;QACxB,MAAM,iBAAiB,GAAG,yBAAyB,EAAE,CAAC;QACtD,MAAM,eAAe,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC;QAErD,6DAA6D;QAC7D,4EAA4E;QAC5E,IAAI,WAAqC,CAAC;QAC1C,IAAI,UAAoD,CAAC;QACzD,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzD,WAAW,GAAG,OAAO,CAAC;YACtB,UAAU,GAAG,MAAM,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,kDAAkD;QAClD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,QAAQ,GAAG,CAAC,KAAe,EAAE,EAAE;YACpC,IAAI,MAAM;gBAAE,OAAO;YACnB,MAAM,GAAG,IAAI,CAAC;YACd,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;gBACzB,UAAU,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;iBAAM,IAAI,WAAW,EAAE,CAAC;gBACxB,WAAW,EAAE,CAAC;YACf,CAAC;QACF,CAAC,CAAC;QAEF,2CAA2C;QAC3C,8DAA8D;QAC7D,CAAS,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;QACrD,8DAA8D;QAC7D,CAAS,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;QAEhD,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;QAErD,8DAA8D;QAC9D,OAAO,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAM,EAAE,EAAE;YACrC,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;gBAC/B,IAAI,CAAC;oBACJ,IAAI,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC9B,IAAI,YAAY,YAAY,OAAO,EAAE,CAAC;wBACrC,YAAY,GAAG,MAAM,YAAY,CAAC;oBACnC,CAAC;oBACD,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC3B,gCAAgC;oBAChC,QAAQ,EAAE,CAAC;gBACZ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;oBAC1C,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACd,MAAM,GAAG,CAAC;gBACX,CAAC;YACF,CAAC,CAAC;YAEF,IAAI,eAAe,EAAE,CAAC;gBACrB,MAAM,iBAAiB,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACP,MAAM,YAAY,EAAE,CAAC;YACtB,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { type AgentContext, type AgentEventName, type AgentEventCallback, type AgentRuntimeState, type CreateEvalConfig, type AgentValidator, type Agent, type CreateAgentConfig, type AgentRunner, getGlobalRuntimeState, getAgentRuntime, type AgentName, type AgentRegistry, registerAgent, setAgentConfig, getAgentConfig, type CreateAgentConfigExplicit, createAgent, populateAgentsRegistry, createAgentMiddleware, getAgents, runAgentSetups, runAgentShutdowns, runInAgentContext, } from './agent';
|
|
2
|
-
export { type AppConfig, type CompressionConfig, type Variables, type TriggerType, type PrivateVariables, type Env, type AppResult, createApp, getApp, getAppState, getAppConfig, runShutdown, fireEvent, } from './app';
|
|
2
|
+
export { type AppConfig, type CompressionConfig, type CorsConfig, type Variables, type TriggerType, type PrivateVariables, type Env, type AppResult, createApp, getApp, getAppState, getAppConfig, runShutdown, fireEvent, } from './app';
|
|
3
|
+
export { createTrustedCorsOrigin, type TrustedCorsOriginOptions } from './cors';
|
|
3
4
|
export { addEventListener, removeEventListener } from './_events';
|
|
4
5
|
export { createBaseMiddleware, createCorsMiddleware, createOtelMiddleware, createCompressionMiddleware, createWebSessionMiddleware, getSessionSecret, } from './middleware';
|
|
5
6
|
export { register } from './otel/config';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,KAAK,EACV,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,qBAAqB,EACrB,eAAe,EACf,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,aAAa,EACb,cAAc,EACd,cAAc,EACd,KAAK,yBAAyB,EAC9B,WAAW,EACX,sBAAsB,EACtB,qBAAqB,EACrB,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACN,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,GAAG,EACR,KAAK,SAAS,EACd,SAAS,EACT,MAAM,EACN,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,GACT,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
export { getGlobalRuntimeState, getAgentRuntime, registerAgent, setAgentConfig, getAgentConfig, createAgent, populateAgentsRegistry, createAgentMiddleware, getAgents, runAgentSetups, runAgentShutdowns, runInAgentContext, } from './agent';
|
|
3
3
|
// app.ts exports (all app-related functionality)
|
|
4
4
|
export { createApp, getApp, getAppState, getAppConfig, runShutdown, fireEvent, } from './app';
|
|
5
|
+
// cors.ts exports (trusted origin helpers)
|
|
6
|
+
export { createTrustedCorsOrigin } from './cors';
|
|
5
7
|
export { addEventListener, removeEventListener } from './_events';
|
|
6
8
|
// middleware.ts exports (Vite-native)
|
|
7
9
|
export { createBaseMiddleware, createCorsMiddleware, createOtelMiddleware, createCompressionMiddleware, createWebSessionMiddleware, getSessionSecret, } from './middleware';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,OAAO,EAUN,qBAAqB,EACrB,eAAe,EAGf,aAAa,EACb,cAAc,EACd,cAAc,EAEd,WAAW,EACX,sBAAsB,EACtB,qBAAqB,EACrB,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GACjB,MAAM,SAAS,CAAC;AAEjB,iDAAiD;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|