@agentuity/runtime 0.0.100 → 0.0.102
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/AGENTS.md +34 -212
- package/dist/_metadata.d.ts +107 -0
- package/dist/_metadata.d.ts.map +1 -0
- package/dist/_metadata.js +179 -0
- package/dist/_metadata.js.map +1 -0
- package/dist/_process-protection.d.ts.map +1 -1
- package/dist/_process-protection.js +4 -0
- package/dist/_process-protection.js.map +1 -1
- package/dist/_services.d.ts.map +1 -1
- package/dist/_services.js +18 -17
- package/dist/_services.js.map +1 -1
- package/dist/_standalone.d.ts.map +1 -1
- package/dist/_standalone.js +17 -0
- package/dist/_standalone.js.map +1 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +53 -12
- package/dist/agent.js.map +1 -1
- package/dist/app.d.ts +61 -10
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js.map +1 -1
- package/dist/devmode.d.ts.map +1 -1
- package/dist/devmode.js +13 -5
- package/dist/devmode.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware.d.ts +61 -5
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +192 -25
- package/dist/middleware.js.map +1 -1
- package/dist/services/evalrun/http.d.ts.map +1 -1
- package/dist/services/evalrun/http.js +14 -4
- package/dist/services/evalrun/http.js.map +1 -1
- package/dist/services/local/vector.d.ts +5 -1
- package/dist/services/local/vector.d.ts.map +1 -1
- package/dist/services/local/vector.js +112 -0
- package/dist/services/local/vector.js.map +1 -1
- package/dist/services/session/http.d.ts.map +1 -1
- package/dist/services/session/http.js +7 -0
- package/dist/services/session/http.js.map +1 -1
- package/dist/services/session/local.d.ts +2 -2
- package/dist/services/session/local.d.ts.map +1 -1
- package/dist/services/session/local.js +5 -4
- package/dist/services/session/local.js.map +1 -1
- package/dist/session.d.ts +30 -4
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +90 -13
- package/dist/session.js.map +1 -1
- package/dist/workbench.d.ts.map +1 -1
- package/dist/workbench.js +13 -20
- package/dist/workbench.js.map +1 -1
- package/package.json +5 -5
- package/src/_metadata.ts +307 -0
- package/src/_process-protection.ts +6 -0
- package/src/_services.ts +23 -21
- package/src/_standalone.ts +22 -0
- package/src/agent.ts +63 -12
- package/src/app.ts +65 -9
- package/src/devmode.ts +16 -5
- package/src/index.ts +12 -2
- package/src/middleware.ts +221 -29
- package/src/services/evalrun/http.ts +15 -4
- package/src/services/local/vector.ts +160 -0
- package/src/services/session/http.ts +11 -0
- package/src/services/session/local.ts +9 -4
- package/src/session.ts +142 -13
- package/src/workbench.ts +13 -26
package/dist/app.d.ts
CHANGED
|
@@ -1,23 +1,78 @@
|
|
|
1
1
|
import { type Env as HonoEnv } from 'hono';
|
|
2
2
|
import type { cors } from 'hono/cors';
|
|
3
|
+
import type { compress } from 'hono/compress';
|
|
3
4
|
import type { Logger } from './logger';
|
|
4
5
|
import type { Meter, Tracer } from '@opentelemetry/api';
|
|
5
6
|
import type { KeyValueStorage, SessionEventProvider, EvalRunEventProvider, StreamStorage, VectorStorage, SessionStartEvent } from '@agentuity/core';
|
|
6
7
|
import type { Email } from './io/email';
|
|
7
8
|
import type { ThreadProvider, SessionProvider, Session, Thread } from './session';
|
|
8
9
|
import type WaitUntilHandler from './_waituntil';
|
|
9
|
-
|
|
10
|
-
config: {
|
|
11
|
-
route?: string;
|
|
12
|
-
headers?: Record<string, string>;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
10
|
+
import type { Context } from 'hono';
|
|
15
11
|
type CorsOptions = Parameters<typeof cors>[0];
|
|
12
|
+
type HonoCompressOptions = Parameters<typeof compress>[0];
|
|
13
|
+
/**
|
|
14
|
+
* Configuration options for response compression middleware.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const app = await createApp({
|
|
19
|
+
* compression: {
|
|
20
|
+
* enabled: true,
|
|
21
|
+
* threshold: 1024,
|
|
22
|
+
* }
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export interface CompressionConfig {
|
|
27
|
+
/**
|
|
28
|
+
* Enable or disable compression globally.
|
|
29
|
+
* @default true
|
|
30
|
+
*/
|
|
31
|
+
enabled?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Minimum response body size in bytes before compression is attempted.
|
|
34
|
+
* Responses smaller than this threshold will not be compressed.
|
|
35
|
+
* @default 1024
|
|
36
|
+
*/
|
|
37
|
+
threshold?: number;
|
|
38
|
+
/**
|
|
39
|
+
* Optional filter function to skip compression for specific requests.
|
|
40
|
+
* Return false to skip compression for the request.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* filter: (c) => !c.req.path.startsWith('/internal')
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
filter?: (c: Context) => boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Raw options passed through to Hono's compress middleware.
|
|
50
|
+
* These are merged with Agentuity's defaults.
|
|
51
|
+
*/
|
|
52
|
+
honoOptions?: HonoCompressOptions;
|
|
53
|
+
}
|
|
16
54
|
export interface AppConfig<TAppState = Record<string, never>> {
|
|
17
55
|
/**
|
|
18
56
|
* Override the default cors settings
|
|
19
57
|
*/
|
|
20
58
|
cors?: CorsOptions;
|
|
59
|
+
/**
|
|
60
|
+
* Configure response compression.
|
|
61
|
+
* Set to `false` to disable compression entirely.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* const app = await createApp({
|
|
66
|
+
* compression: {
|
|
67
|
+
* threshold: 2048,
|
|
68
|
+
* }
|
|
69
|
+
* });
|
|
70
|
+
*
|
|
71
|
+
* // Or disable compression:
|
|
72
|
+
* const app = await createApp({ compression: false });
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
compression?: CompressionConfig | false;
|
|
21
76
|
/**
|
|
22
77
|
* Override the default services
|
|
23
78
|
*/
|
|
@@ -54,10 +109,6 @@ export interface AppConfig<TAppState = Record<string, never>> {
|
|
|
54
109
|
* the EvalRunEventProvider to override instead of the default
|
|
55
110
|
*/
|
|
56
111
|
evalRunEvent?: EvalRunEventProvider;
|
|
57
|
-
/**
|
|
58
|
-
* the Workbench to override instead of the default
|
|
59
|
-
*/
|
|
60
|
-
workbench?: WorkbenchInstance;
|
|
61
112
|
};
|
|
62
113
|
/**
|
|
63
114
|
* Optional setup function called before server starts
|
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,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,iBAAiB,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,KAAK,gBAAgB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
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":"AAsKA;;;GAGG;AACH,MAAM,UAAU,MAAM;IACrB,OAAO,IAAI,CAAC;AACb,CAAC;AAED,yCAAyC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACN,gBAAgB,IAAI,sBAAsB,EAC1C,mBAAmB,IAAI,yBAAyB,GAChD,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AA0DjD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC9B,MAA6B;IAE7B,6BAA6B;IAC7B,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAE,EAAgB,CAAC;IAEvE,qEAAqE;IACpE,UAAkB,CAAC,uBAAuB,GAAG,KAAK,CAAC;IACnD,UAAkB,CAAC,wBAAwB,GAAG,MAAM,CAAC;IAEtD,sCAAsC;IACtC,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,CAAC;IAClC,IAAI,QAAQ,EAAE,CAAC;QACb,UAAkB,CAAC,sBAAsB,GAAG,QAAQ,CAAC;IACvD,CAAC;IAED,kEAAkE;IAClE,4EAA4E;IAC5E,sEAAsE;IACtE,uFAAuF;IACvF,MAAM,MAAM,GAAW;QACtB,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;YAClB,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;YACvB,IAAI,EAAE;gBAAE,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;YAClB,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;YACvB,IAAI,EAAE;gBAAE,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;YACjB,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;YACvB,IAAI,EAAE;gBAAE,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;;gBACpB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;YACjB,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;YACvB,IAAI,EAAE;gBAAE,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;;gBACpB,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;YAClB,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;YACvB,IAAI,EAAE;gBAAE,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;;gBACrB,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,KAAK,EAAE,CAAC,GAAG,IAAI,EAAS,EAAE;YACzB,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;YACvB,IAAI,EAAE;gBAAE,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YACjC,+DAA+D;YAC/D,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QAChC,CAAC;QACD,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE;YACnB,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACzC,CAAC;KACD,CAAC;IAEF,sCAAsC;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC;IACxC,MAAM,MAAM,GAAW;QACtB,GAAG,EAAE,oBAAoB,IAAI,EAAE;KAC/B,CAAC;IAEF,kEAAkE;IAClE,2DAA2D;IAC3D,MAAM,YAAY,GAAG,SAAS,EAAE,CAAC;IACjC,IAAI,CAAC,YAAY,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACd,qLAAqL,CACrL,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,YAAoC,CAAC;IAEpD,OAAO;QACN,KAAK;QACL,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,gBAAgB,EAAE,sBAAsB;QACxC,mBAAmB,EAAE,yBAAyB;KAC9C,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;IAC1B,OAAQ,UAAkB,CAAC,uBAAuB,IAAK,EAAgB,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC3B,OAAQ,UAAkB,CAAC,wBAAwB,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW;IAChC,MAAM,QAAQ,GAAI,UAAkB,CAAC,sBAAsB,CAAC;IAC5D,IAAI,QAAQ,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;QAC5B,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACF,CAAC"}
|
package/dist/devmode.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devmode.d.ts","sourceRoot":"","sources":["../src/devmode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"devmode.d.ts","sourceRoot":"","sources":["../src/devmode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAoF5B,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,IAAI,UAsFjD"}
|
package/dist/devmode.js
CHANGED
|
@@ -75,12 +75,20 @@ const overlay = `
|
|
|
75
75
|
}
|
|
76
76
|
</style>
|
|
77
77
|
`;
|
|
78
|
+
// Global controller to avoid registering multiple SIGINT listeners
|
|
79
|
+
let globalController;
|
|
80
|
+
let globalSigintHandler;
|
|
78
81
|
export function registerDevModeRoutes(router) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
// Reuse existing controller or create new one
|
|
83
|
+
if (!globalController) {
|
|
84
|
+
globalController = new AbortController();
|
|
85
|
+
// Only register SIGINT handler once
|
|
86
|
+
globalSigintHandler = () => {
|
|
87
|
+
globalController?.abort();
|
|
88
|
+
};
|
|
89
|
+
process.on('SIGINT', globalSigintHandler);
|
|
90
|
+
}
|
|
91
|
+
const signal = globalController.signal;
|
|
84
92
|
router.get('/__dev__/reload', () => {
|
|
85
93
|
const stream = new ReadableStream({
|
|
86
94
|
start(controller) {
|
package/dist/devmode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devmode.js","sourceRoot":"","sources":["../src/devmode.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Ef,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,MAAY;IACjD,
|
|
1
|
+
{"version":3,"file":"devmode.js","sourceRoot":"","sources":["../src/devmode.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Ef,CAAC;AAEF,mEAAmE;AACnE,IAAI,gBAA6C,CAAC;AAClD,IAAI,mBAA6C,CAAC;AAElD,MAAM,UAAU,qBAAqB,CAAC,MAAY;IACjD,8CAA8C;IAC9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvB,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;QAEzC,oCAAoC;QACpC,mBAAmB,GAAG,GAAG,EAAE;YAC1B,gBAAgB,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;IACvC,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAClC,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YACjC,KAAK,CAAC,UAAU;gBACf,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;oBACrC,IAAI,CAAC;wBACJ,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;oBACxC,CAAC;oBAAC,MAAM,CAAC;wBACR,gBAAgB;oBACjB,CAAC;oBACD,IAAI,CAAC;wBACJ,UAAU,CAAC,KAAK,EAAE,CAAC;oBACpB,CAAC;oBAAC,MAAM,CAAC;wBACR,gBAAgB;oBACjB,CAAC;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;SACD,CAAC,CAAC;QACH,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;YAC3B,OAAO,EAAE;gBACR,cAAc,EAAE,mBAAmB;gBACnC,eAAe,EAAE,UAAU;aAC3B;SACD,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA2CN,CAAC;QACR,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,GAAG,0DAA0D,CAAC;AAC7E,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { 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
|
|
2
|
+
export { type AppConfig, type CompressionConfig, type Variables, type TriggerType, type PrivateVariables, type Env, type AppResult, createApp, getApp, getAppState, getAppConfig, runShutdown, fireEvent, } from './app';
|
|
3
3
|
export { addEventListener, removeEventListener } from './_events';
|
|
4
|
-
export { createBaseMiddleware, createCorsMiddleware, createOtelMiddleware } from './middleware';
|
|
4
|
+
export { createBaseMiddleware, createCorsMiddleware, createOtelMiddleware, createCompressionMiddleware, } from './middleware';
|
|
5
5
|
export { register } from './otel/config';
|
|
6
6
|
export { createServices } from './_services';
|
|
7
7
|
export { enableProcessExitProtection } from './_process-protection';
|
|
@@ -61,4 +61,5 @@ export type { RouteSchema, GetRouteSchema } from './_validation';
|
|
|
61
61
|
*/
|
|
62
62
|
export interface AppState {
|
|
63
63
|
}
|
|
64
|
+
export { bootstrapRuntimeEnv, type RuntimeBootstrapOptions } from '@agentuity/server';
|
|
64
65
|
//# sourceMappingURL=index.d.ts.map
|
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,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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ export { getGlobalRuntimeState, getAgentRuntime, registerAgent, setAgentConfig,
|
|
|
4
4
|
export { createApp, getApp, getAppState, getAppConfig, runShutdown, fireEvent, } from './app';
|
|
5
5
|
export { addEventListener, removeEventListener } from './_events';
|
|
6
6
|
// middleware.ts exports (Vite-native)
|
|
7
|
-
export { createBaseMiddleware, createCorsMiddleware, createOtelMiddleware } from './middleware';
|
|
7
|
+
export { createBaseMiddleware, createCorsMiddleware, createOtelMiddleware, createCompressionMiddleware, } from './middleware';
|
|
8
8
|
// Internal exports needed by generated entry files
|
|
9
9
|
export { register } from './otel/config';
|
|
10
10
|
export { createServices } from './_services';
|
|
@@ -37,4 +37,8 @@ export { Email, parseEmail } from './io/email';
|
|
|
37
37
|
export { HTTPEvalRunEventProvider, LocalEvalRunEventProvider, JSONEvalRunEventProvider, CompositeEvalRunEventProvider, } from './services/evalrun';
|
|
38
38
|
// _services.ts exports
|
|
39
39
|
export { getEvalRunEventProvider, getThreadProvider, getSessionProvider } from './_services';
|
|
40
|
+
// Re-export bootstrapRuntimeEnv from @agentuity/server for convenience
|
|
41
|
+
// This allows generated code to import from @agentuity/runtime instead of having
|
|
42
|
+
// a direct dependency on @agentuity/server
|
|
43
|
+
export { bootstrapRuntimeEnv } from '@agentuity/server';
|
|
40
44
|
//# sourceMappingURL=index.js.map
|
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,EASN,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,EAQN,SAAS,EACT,MAAM,EACN,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAElE,sCAAsC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,OAAO,EASN,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,EAQN,SAAS,EACT,MAAM,EACN,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAElE,sCAAsC;AACtC,OAAO,EACN,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,GAC3B,MAAM,cAAc,CAAC;AAEtB,mDAAmD;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEpE,6DAA6D;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,oBAAoB;AACpB,OAAO,EAA0C,YAAY,EAAE,MAAM,UAAU,CAAC;AAiBhF,qBAAqB;AACrB,OAAO,EAQN,UAAU,EACV,uBAAuB,EACvB,aAAa,GACb,MAAM,WAAW,CAAC;AAEnB,gCAAgC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,uBAAuB;AACvB,OAAO,EACN,6BAA6B,EAC7B,qBAAqB,EACrB,4BAA4B,EAC5B,6BAA6B,GAC7B,MAAM,aAAa,CAAC;AAErB,iBAAiB;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAExC,uBAAuB;AACvB,OAAO,EAAuB,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7D,qBAAqB;AACrB,OAAO,EACN,SAAS,EACT,eAAe,EACf,YAAY,EACZ,SAAS,EACT,eAAe,EACf,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,SAAS,EACT,wBAAwB,GACxB,MAAM,WAAW,CAAC;AAEnB,wBAAwB;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,yBAAyB;AACzB,OAAO,EACN,kBAAkB,EAClB,sBAAsB,GAGtB,MAAM,eAAe,CAAC;AAEvB,mBAAmB;AACnB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE/C,2BAA2B;AAC3B,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,6BAA6B,GAC7B,MAAM,oBAAoB,CAAC;AAE5B,uBAAuB;AACvB,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AA6C7F,uEAAuE;AACvE,iFAAiF;AACjF,2CAA2C;AAC3C,OAAO,EAAE,mBAAmB,EAAgC,MAAM,mBAAmB,CAAC"}
|
package/dist/middleware.d.ts
CHANGED
|
@@ -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 } from './app';
|
|
6
|
+
import type { Env, CompressionConfig } 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", "state", "thread", "session", "config", "app", "waitUntil"];
|
|
@@ -16,14 +16,70 @@ export interface MiddlewareConfig {
|
|
|
16
16
|
/**
|
|
17
17
|
* Create base middleware that sets up context variables
|
|
18
18
|
*/
|
|
19
|
-
export declare function createBaseMiddleware(config: MiddlewareConfig): import("hono").MiddlewareHandler<Env<
|
|
19
|
+
export declare function createBaseMiddleware(config: MiddlewareConfig): import("hono").MiddlewareHandler<Env<any>, string, {}, Response>;
|
|
20
20
|
/**
|
|
21
|
-
* Create CORS middleware
|
|
21
|
+
* Create CORS middleware with lazy config resolution.
|
|
22
|
+
*
|
|
23
|
+
* Handles Cross-Origin Resource Sharing (CORS) headers for API routes.
|
|
24
|
+
* Config is resolved at request time, allowing it to be set via createApp().
|
|
25
|
+
* Static options passed here take precedence over app config.
|
|
26
|
+
*
|
|
27
|
+
* Default behavior:
|
|
28
|
+
* - Reflects the request origin (allows any origin)
|
|
29
|
+
* - Allows common headers: Content-Type, Authorization, Accept, Origin, X-Requested-With
|
|
30
|
+
* - Allows all standard HTTP methods
|
|
31
|
+
* - Enables credentials
|
|
32
|
+
* - Sets max-age to 600 seconds (10 minutes)
|
|
33
|
+
*
|
|
34
|
+
* @param staticOptions - Optional static CORS options that override app config
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* // Use with default settings
|
|
39
|
+
* app.use('/api/*', createCorsMiddleware());
|
|
40
|
+
*
|
|
41
|
+
* // Or configure via createApp
|
|
42
|
+
* const app = await createApp({
|
|
43
|
+
* cors: {
|
|
44
|
+
* origin: 'https://example.com',
|
|
45
|
+
* allowHeaders: ['Content-Type', 'Authorization', 'X-Custom-Header'],
|
|
46
|
+
* maxAge: 3600,
|
|
47
|
+
* }
|
|
48
|
+
* });
|
|
49
|
+
*
|
|
50
|
+
* // Or pass static options directly (overrides app config)
|
|
51
|
+
* app.use('/api/*', createCorsMiddleware({
|
|
52
|
+
* origin: ['https://app.example.com', 'https://admin.example.com'],
|
|
53
|
+
* credentials: true,
|
|
54
|
+
* }));
|
|
55
|
+
* ```
|
|
22
56
|
*/
|
|
23
|
-
export declare function createCorsMiddleware(
|
|
57
|
+
export declare function createCorsMiddleware(staticOptions?: Parameters<typeof cors>[0]): import("hono").MiddlewareHandler<Env<any>, string, {}, Response>;
|
|
24
58
|
/**
|
|
25
59
|
* Create OpenTelemetry middleware for session/thread tracking
|
|
26
60
|
* This is the critical middleware that creates AgentContext
|
|
27
61
|
*/
|
|
28
|
-
export declare function createOtelMiddleware(): import("hono").MiddlewareHandler<Env<
|
|
62
|
+
export declare function createOtelMiddleware(): import("hono").MiddlewareHandler<Env<any>, string, {}, Response>;
|
|
63
|
+
/**
|
|
64
|
+
* Create compression middleware with lazy config resolution.
|
|
65
|
+
*
|
|
66
|
+
* Compresses response bodies using gzip or deflate based on the Accept-Encoding header.
|
|
67
|
+
* Config is resolved at request time, allowing it to be set via createApp().
|
|
68
|
+
*
|
|
69
|
+
* @param staticConfig - Optional static config that overrides app config
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* // Use with default settings
|
|
74
|
+
* app.use('*', createCompressionMiddleware());
|
|
75
|
+
*
|
|
76
|
+
* // Or configure via createApp
|
|
77
|
+
* const app = await createApp({
|
|
78
|
+
* compression: {
|
|
79
|
+
* threshold: 2048,
|
|
80
|
+
* }
|
|
81
|
+
* });
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
export declare function createCompressionMiddleware(staticConfig?: CompressionConfig): import("hono").MiddlewareHandler<Env<any>, string, {}, Response>;
|
|
29
85
|
//# sourceMappingURL=middleware.d.ts.map
|
package/dist/middleware.d.ts.map
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,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,kIAa3B,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,oEA8C5D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,oEAoC9E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,qEAoKnC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,2BAA2B,CAAC,YAAY,CAAC,EAAE,iBAAiB,oEAkD3E"}
|
package/dist/middleware.js
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { createMiddleware } from 'hono/factory';
|
|
6
6
|
import { cors } from 'hono/cors';
|
|
7
|
+
import { compress } from 'hono/compress';
|
|
8
|
+
import { getAppConfig } from './app';
|
|
7
9
|
import { generateId } from './session';
|
|
8
10
|
import { runInHTTPContext } from './_context';
|
|
9
11
|
import { DURATION_HEADER, TOKENS_HEADER } from './_tokens';
|
|
@@ -11,6 +13,8 @@ import { extractTraceContextFromRequest } from './otel/http';
|
|
|
11
13
|
import { context, SpanKind, SpanStatusCode, trace, propagation, } from '@opentelemetry/api';
|
|
12
14
|
import { TraceState } from '@opentelemetry/core';
|
|
13
15
|
import * as runtimeConfig from './_config';
|
|
16
|
+
import { getSessionEventProvider } from './_services';
|
|
17
|
+
import { internal } from './logger/internal';
|
|
14
18
|
const SESSION_HEADER = 'x-session-id';
|
|
15
19
|
const THREAD_HEADER = 'x-thread-id';
|
|
16
20
|
const DEPLOYMENT_HEADER = 'x-deployment';
|
|
@@ -49,6 +53,7 @@ function installContextPropertyHelpers(c) {
|
|
|
49
53
|
* Create base middleware that sets up context variables
|
|
50
54
|
*/
|
|
51
55
|
export function createBaseMiddleware(config) {
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
52
57
|
return createMiddleware(async (c, next) => {
|
|
53
58
|
c.set('logger', config.logger);
|
|
54
59
|
c.set('tracer', config.tracer);
|
|
@@ -80,31 +85,75 @@ export function createBaseMiddleware(config) {
|
|
|
80
85
|
});
|
|
81
86
|
}
|
|
82
87
|
/**
|
|
83
|
-
* Create CORS middleware
|
|
88
|
+
* Create CORS middleware with lazy config resolution.
|
|
89
|
+
*
|
|
90
|
+
* Handles Cross-Origin Resource Sharing (CORS) headers for API routes.
|
|
91
|
+
* Config is resolved at request time, allowing it to be set via createApp().
|
|
92
|
+
* Static options passed here take precedence over app config.
|
|
93
|
+
*
|
|
94
|
+
* Default behavior:
|
|
95
|
+
* - Reflects the request origin (allows any origin)
|
|
96
|
+
* - Allows common headers: Content-Type, Authorization, Accept, Origin, X-Requested-With
|
|
97
|
+
* - Allows all standard HTTP methods
|
|
98
|
+
* - Enables credentials
|
|
99
|
+
* - Sets max-age to 600 seconds (10 minutes)
|
|
100
|
+
*
|
|
101
|
+
* @param staticOptions - Optional static CORS options that override app config
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* // Use with default settings
|
|
106
|
+
* app.use('/api/*', createCorsMiddleware());
|
|
107
|
+
*
|
|
108
|
+
* // Or configure via createApp
|
|
109
|
+
* const app = await createApp({
|
|
110
|
+
* cors: {
|
|
111
|
+
* origin: 'https://example.com',
|
|
112
|
+
* allowHeaders: ['Content-Type', 'Authorization', 'X-Custom-Header'],
|
|
113
|
+
* maxAge: 3600,
|
|
114
|
+
* }
|
|
115
|
+
* });
|
|
116
|
+
*
|
|
117
|
+
* // Or pass static options directly (overrides app config)
|
|
118
|
+
* app.use('/api/*', createCorsMiddleware({
|
|
119
|
+
* origin: ['https://app.example.com', 'https://admin.example.com'],
|
|
120
|
+
* credentials: true,
|
|
121
|
+
* }));
|
|
122
|
+
* ```
|
|
84
123
|
*/
|
|
85
|
-
export function createCorsMiddleware(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
124
|
+
export function createCorsMiddleware(staticOptions) {
|
|
125
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
126
|
+
return createMiddleware(async (c, next) => {
|
|
127
|
+
// Lazy resolve: merge app config with static options
|
|
128
|
+
const appConfig = getAppConfig();
|
|
129
|
+
const corsOptions = {
|
|
130
|
+
...appConfig?.cors,
|
|
131
|
+
...staticOptions,
|
|
132
|
+
};
|
|
133
|
+
const corsMiddleware = cors({
|
|
134
|
+
origin: corsOptions?.origin ?? ((origin) => origin),
|
|
135
|
+
allowHeaders: corsOptions?.allowHeaders ?? [
|
|
136
|
+
'Content-Type',
|
|
137
|
+
'Authorization',
|
|
138
|
+
'Accept',
|
|
139
|
+
'Origin',
|
|
140
|
+
'X-Requested-With',
|
|
141
|
+
THREAD_HEADER,
|
|
142
|
+
],
|
|
143
|
+
allowMethods: ['POST', 'GET', 'OPTIONS', 'HEAD', 'PUT', 'DELETE', 'PATCH'],
|
|
144
|
+
exposeHeaders: [
|
|
145
|
+
'Content-Length',
|
|
146
|
+
TOKENS_HEADER,
|
|
147
|
+
DURATION_HEADER,
|
|
148
|
+
THREAD_HEADER,
|
|
149
|
+
SESSION_HEADER,
|
|
150
|
+
DEPLOYMENT_HEADER,
|
|
151
|
+
],
|
|
152
|
+
maxAge: 600,
|
|
153
|
+
credentials: true,
|
|
154
|
+
...(corsOptions ?? {}),
|
|
155
|
+
});
|
|
156
|
+
return corsMiddleware(c, next);
|
|
108
157
|
});
|
|
109
158
|
}
|
|
110
159
|
/**
|
|
@@ -112,6 +161,7 @@ export function createCorsMiddleware(corsOptions) {
|
|
|
112
161
|
* This is the critical middleware that creates AgentContext
|
|
113
162
|
*/
|
|
114
163
|
export function createOtelMiddleware() {
|
|
164
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
115
165
|
return createMiddleware(async (c, next) => {
|
|
116
166
|
// Import providers dynamically to avoid circular deps
|
|
117
167
|
const { getThreadProvider, getSessionProvider } = await import('./_services');
|
|
@@ -139,6 +189,7 @@ export function createOtelMiddleware() {
|
|
|
139
189
|
const orgId = runtimeConfig.getOrganizationId();
|
|
140
190
|
const deploymentId = runtimeConfig.getDeploymentId();
|
|
141
191
|
const isDevMode = runtimeConfig.isDevMode();
|
|
192
|
+
internal.info('[session] config: orgId=%s, projectId=%s, deploymentId=%s, isDevMode=%s', orgId ?? 'NOT SET (AGENTUITY_CLOUD_ORG_ID)', projectId ?? 'NOT SET (AGENTUITY_CLOUD_PROJECT_ID)', deploymentId ?? 'none', isDevMode);
|
|
142
193
|
if (projectId)
|
|
143
194
|
traceState = traceState.set('pid', projectId);
|
|
144
195
|
if (orgId)
|
|
@@ -159,15 +210,44 @@ export function createOtelMiddleware() {
|
|
|
159
210
|
c.set('session', session);
|
|
160
211
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
161
212
|
c.set('waitUntilHandler', handler);
|
|
213
|
+
const agentIds = new Set();
|
|
162
214
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
163
|
-
c.set('agentIds',
|
|
215
|
+
c.set('agentIds', agentIds);
|
|
164
216
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
165
217
|
c.set('trigger', 'api');
|
|
218
|
+
// Send session start event (so evalruns can reference this session)
|
|
219
|
+
const sessionEventProvider = getSessionEventProvider();
|
|
220
|
+
const shouldSendSession = !!(orgId && projectId);
|
|
221
|
+
if (shouldSendSession && sessionEventProvider) {
|
|
222
|
+
try {
|
|
223
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
224
|
+
const routeId = c.var?.routeId || '';
|
|
225
|
+
await sessionEventProvider.start({
|
|
226
|
+
id: sessionId,
|
|
227
|
+
threadId: thread.id,
|
|
228
|
+
orgId,
|
|
229
|
+
projectId,
|
|
230
|
+
deploymentId: deploymentId || undefined,
|
|
231
|
+
devmode: isDevMode,
|
|
232
|
+
trigger: 'api',
|
|
233
|
+
routeId,
|
|
234
|
+
environment: runtimeConfig.getEnvironment(),
|
|
235
|
+
url: c.req.path,
|
|
236
|
+
method: c.req.method,
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
catch (_ex) {
|
|
240
|
+
// Silently ignore session start errors - don't block request
|
|
241
|
+
}
|
|
242
|
+
}
|
|
166
243
|
try {
|
|
167
244
|
await next();
|
|
168
245
|
// Save session/thread and send events
|
|
246
|
+
internal.info('[session] saving session %s (thread: %s)', sessionId, thread.id);
|
|
169
247
|
await sessionProvider.save(session);
|
|
248
|
+
internal.info('[session] session saved, now saving thread');
|
|
170
249
|
await threadProvider.save(thread);
|
|
250
|
+
internal.info('[session] thread saved');
|
|
171
251
|
span.setStatus({ code: SpanStatusCode.OK });
|
|
172
252
|
}
|
|
173
253
|
catch (ex) {
|
|
@@ -181,6 +261,30 @@ export function createOtelMiddleware() {
|
|
|
181
261
|
throw ex;
|
|
182
262
|
}
|
|
183
263
|
finally {
|
|
264
|
+
// Send session complete event
|
|
265
|
+
internal.info('[session] shouldSendSession: %s, hasSessionEventProvider: %s', shouldSendSession, !!sessionEventProvider);
|
|
266
|
+
if (shouldSendSession && sessionEventProvider) {
|
|
267
|
+
try {
|
|
268
|
+
const userData = session.serializeUserData();
|
|
269
|
+
internal.info('[session] sending session complete event, userData: %s', userData ? `${userData.length} bytes` : 'none');
|
|
270
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
271
|
+
const agentIdsSet = c.get('agentIds');
|
|
272
|
+
const agentIds = agentIdsSet ? [...agentIdsSet].filter(Boolean) : undefined;
|
|
273
|
+
internal.info('[session] agentIds: %o', agentIds);
|
|
274
|
+
await sessionEventProvider.complete({
|
|
275
|
+
id: sessionId,
|
|
276
|
+
threadId: thread.empty() ? null : thread.id,
|
|
277
|
+
statusCode: c.res?.status ?? 200,
|
|
278
|
+
agentIds: agentIds?.length ? agentIds : undefined,
|
|
279
|
+
userData,
|
|
280
|
+
});
|
|
281
|
+
internal.info('[session] session complete event sent');
|
|
282
|
+
}
|
|
283
|
+
catch (ex) {
|
|
284
|
+
internal.info('[session] session complete event failed: %s', ex);
|
|
285
|
+
// Silently ignore session complete errors - don't block response
|
|
286
|
+
}
|
|
287
|
+
}
|
|
184
288
|
const headers = {};
|
|
185
289
|
propagation.inject(context.active(), headers);
|
|
186
290
|
for (const key of Object.keys(headers)) {
|
|
@@ -197,4 +301,67 @@ export function createOtelMiddleware() {
|
|
|
197
301
|
});
|
|
198
302
|
});
|
|
199
303
|
}
|
|
304
|
+
/**
|
|
305
|
+
* Create compression middleware with lazy config resolution.
|
|
306
|
+
*
|
|
307
|
+
* Compresses response bodies using gzip or deflate based on the Accept-Encoding header.
|
|
308
|
+
* Config is resolved at request time, allowing it to be set via createApp().
|
|
309
|
+
*
|
|
310
|
+
* @param staticConfig - Optional static config that overrides app config
|
|
311
|
+
*
|
|
312
|
+
* @example
|
|
313
|
+
* ```typescript
|
|
314
|
+
* // Use with default settings
|
|
315
|
+
* app.use('*', createCompressionMiddleware());
|
|
316
|
+
*
|
|
317
|
+
* // Or configure via createApp
|
|
318
|
+
* const app = await createApp({
|
|
319
|
+
* compression: {
|
|
320
|
+
* threshold: 2048,
|
|
321
|
+
* }
|
|
322
|
+
* });
|
|
323
|
+
* ```
|
|
324
|
+
*/
|
|
325
|
+
export function createCompressionMiddleware(staticConfig) {
|
|
326
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
327
|
+
return createMiddleware(async (c, next) => {
|
|
328
|
+
// Lazy resolve: merge app config with static config
|
|
329
|
+
const appConfig = getAppConfig();
|
|
330
|
+
const appCompressionConfig = appConfig?.compression;
|
|
331
|
+
// Check if compression is explicitly disabled
|
|
332
|
+
if (appCompressionConfig === false || staticConfig?.enabled === false) {
|
|
333
|
+
return next();
|
|
334
|
+
}
|
|
335
|
+
// Merge configs: static config takes precedence over app config
|
|
336
|
+
const config = {
|
|
337
|
+
...(typeof appCompressionConfig === 'object' ? appCompressionConfig : {}),
|
|
338
|
+
...staticConfig,
|
|
339
|
+
};
|
|
340
|
+
const { enabled = true, threshold = 1024, filter, honoOptions } = config;
|
|
341
|
+
// Skip if explicitly disabled
|
|
342
|
+
if (!enabled) {
|
|
343
|
+
return next();
|
|
344
|
+
}
|
|
345
|
+
// Skip WebSocket upgrade requests
|
|
346
|
+
const upgrade = c.req.header('upgrade');
|
|
347
|
+
if (upgrade && upgrade.toLowerCase() === 'websocket') {
|
|
348
|
+
return next();
|
|
349
|
+
}
|
|
350
|
+
// Skip if no Accept-Encoding header
|
|
351
|
+
const acceptEncoding = c.req.header('accept-encoding');
|
|
352
|
+
if (!acceptEncoding) {
|
|
353
|
+
return next();
|
|
354
|
+
}
|
|
355
|
+
// Check custom filter
|
|
356
|
+
if (filter && !filter(c)) {
|
|
357
|
+
return next();
|
|
358
|
+
}
|
|
359
|
+
// Create and run the Hono compress middleware
|
|
360
|
+
const compressMiddleware = compress({
|
|
361
|
+
threshold,
|
|
362
|
+
...honoOptions,
|
|
363
|
+
});
|
|
364
|
+
await compressMiddleware(c, next);
|
|
365
|
+
});
|
|
366
|
+
}
|
|
200
367
|
//# sourceMappingURL=middleware.js.map
|