@agentuity/runtime 1.0.39 → 1.0.40

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/README.md CHANGED
@@ -71,6 +71,43 @@ router.post('/greeting', greetingAgent.validator(), async (c) => {
71
71
  export default router;
72
72
  ```
73
73
 
74
+ ### Using Plain Hono with Agentuity Types
75
+
76
+ If you prefer using `new Hono()` directly instead of `createRouter()`, import the `Env` type to type Agentuity context variables (`c.var.logger`, `c.var.thread`, `c.var.session`, `c.var.kv`, etc.). These values are populated at runtime when the router is mounted through the Agentuity runtime (via `createApp()`):
77
+
78
+ ```typescript
79
+ import { type Env } from '@agentuity/runtime';
80
+ import { Hono } from 'hono';
81
+
82
+ const router = new Hono<Env>();
83
+
84
+ router.get('/hello', (c) => {
85
+ // All Agentuity context variables are fully typed
86
+ c.var.logger.info('Request from thread %s', c.var.thread.id);
87
+ return c.json({ sessionId: c.var.sessionId });
88
+ });
89
+
90
+ export default router;
91
+ ```
92
+
93
+ With custom application state:
94
+
95
+ ```typescript
96
+ import { type Env } from '@agentuity/runtime';
97
+ import { Hono } from 'hono';
98
+
99
+ interface MyAppState {
100
+ db: Database;
101
+ }
102
+
103
+ const router = new Hono<Env<MyAppState>>();
104
+
105
+ router.get('/data', (c) => {
106
+ const db = c.var.app.db; // typed as Database
107
+ return c.json({ connected: true });
108
+ });
109
+ ```
110
+
74
111
  ### Streaming Responses
75
112
 
76
113
  ```typescript
@@ -162,7 +199,7 @@ Creates a type-safe agent with input/output validation.
162
199
 
163
200
  ### createRouter()
164
201
 
165
- Creates a new router for defining custom API routes.
202
+ Creates a new Hono router pre-typed with `Env` for Agentuity context variables. This is equivalent to `new Hono<Env>()` but is the recommended approach.
166
203
 
167
204
  **Methods:**
168
205
 
@@ -177,6 +214,38 @@ Use these middleware functions with standard HTTP methods:
177
214
  - `stream((c) => ReadableStream)` - Streaming responses (use with `router.post()`)
178
215
  - `cron(schedule, (c) => { ... })` - Scheduled tasks (use with `router.post()`)
179
216
 
217
+ ### Env\<TAppState\>
218
+
219
+ The Hono environment type that provides typed access to Agentuity context variables in route handlers. Use this when creating a plain `new Hono()` instance instead of `createRouter()`.
220
+
221
+ ```typescript
222
+ import { type Env } from '@agentuity/runtime';
223
+ import { Hono } from 'hono';
224
+
225
+ const router = new Hono<Env>();
226
+ // c.var.logger, c.var.thread, c.var.session, c.var.kv, etc. are typed
227
+ ```
228
+
229
+ **Variables provided by Env:**
230
+
231
+ | Variable | Type | Description |
232
+ | ----------- | ----------------- | ----------------------------- |
233
+ | `logger` | `Logger` | Structured logger |
234
+ | `tracer` | `Tracer` | OpenTelemetry tracer |
235
+ | `meter` | `Meter` | OpenTelemetry meter |
236
+ | `sessionId` | `string` | Current session ID |
237
+ | `thread` | `Thread` | Thread information and state |
238
+ | `session` | `Session` | Session information and state |
239
+ | `kv` | `KeyValueStorage` | Key-value storage |
240
+ | `stream` | `StreamStorage` | Stream storage |
241
+ | `vector` | `VectorStorage` | Vector storage |
242
+ | `sandbox` | `SandboxService` | Sandbox service |
243
+ | `queue` | `QueueService` | Queue service |
244
+ | `email` | `EmailService` | Email service |
245
+ | `schedule` | `ScheduleService` | Schedule service |
246
+ | `task` | `TaskStorage` | Task storage |
247
+ | `app` | `TAppState` | Custom application state |
248
+
180
249
  ### AgentContext
181
250
 
182
251
  Context object available in agent handlers:
package/dist/app.d.ts CHANGED
@@ -202,6 +202,67 @@ export interface AppConfig<TAppState = Record<string, never>> {
202
202
  * to zero which will cause the request to wait indefinitely.
203
203
  */
204
204
  requestTimeout?: number;
205
+ /**
206
+ * **Experimental** — Optional user-provided router(s) to use instead of file-based routing.
207
+ *
208
+ * When provided, the CLI's generated entry file mounts these routers instead
209
+ * of auto-discovering individual route files from `src/api/`. All Agentuity
210
+ * middleware (CORS, OTel, agent context) is applied to each mount path.
211
+ *
212
+ * Accepts three forms:
213
+ * - A plain `Hono` instance → mounted at `/api` (default)
214
+ * - A `{ path, router }` object → mounted at the specified path
215
+ * - An array of `{ path, router }` objects → each mounted at its path
216
+ *
217
+ * Use `createRouter()` to get typed access to Agentuity context variables
218
+ * (`c.var.logger`, `c.var.thread`, `c.var.session`, etc.), or use
219
+ * `new Hono<Env>()` for the same types with a plain Hono instance.
220
+ *
221
+ * @experimental This API may change in future releases.
222
+ *
223
+ * @example Single router (mounted at /api)
224
+ * ```typescript
225
+ * const router = createRouter();
226
+ * router.route('/users', usersRouter);
227
+ * export const app = await createApp({ router });
228
+ * ```
229
+ *
230
+ * @example Single router at custom path
231
+ * ```typescript
232
+ * const router = createRouter();
233
+ * router.route('/users', usersRouter);
234
+ * export const app = await createApp({
235
+ * router: { path: '/v1', router },
236
+ * });
237
+ * ```
238
+ *
239
+ * @example Multiple routers at different paths
240
+ * ```typescript
241
+ * export const app = await createApp({
242
+ * router: [
243
+ * { path: '/api/v1', router: v1Router },
244
+ * { path: '/api/v2', router: v2Router },
245
+ * ],
246
+ * });
247
+ * ```
248
+ */
249
+ router?: import('hono').Hono<any, any, any> | RouteMount | RouteMount[];
250
+ }
251
+ /**
252
+ * A user-provided router with its mount path.
253
+ *
254
+ * @experimental This API may change in future releases.
255
+ */
256
+ export interface RouteMount {
257
+ /**
258
+ * The base path to mount the router at (e.g. `/api`, `/api/v1`).
259
+ * Agentuity middleware (CORS, OTel, agent context) is applied to `{path}/*`.
260
+ */
261
+ path: string;
262
+ /**
263
+ * The Hono router to mount.
264
+ */
265
+ router: import('hono').Hono<any, any, any>;
205
266
  }
206
267
  export interface Variables<TAppState = Record<string, never>> {
207
268
  logger: Logger;
@@ -321,6 +382,13 @@ export declare function getAppState<TAppState = any>(): TAppState;
321
382
  * Used by generated entry file for middleware setup
322
383
  */
323
384
  export declare function getAppConfig<TAppState = any>(): AppConfig<TAppState> | undefined;
385
+ /**
386
+ * Get the user-provided router mounts from createApp({ router }).
387
+ * Returns undefined if no user router was provided (file-based routing).
388
+ * Used by generated entry file to skip file-based route discovery.
389
+ * @internal
390
+ */
391
+ export declare function getUserRouter(): RouteMount[] | undefined;
324
392
  /**
325
393
  * Set the global app config (for testing purposes)
326
394
  * @internal
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
package/dist/app.js CHANGED
@@ -43,6 +43,11 @@ export async function createApp(config) {
43
43
  // Store state and config globally for generated entry file to access
44
44
  globalThis.__AGENTUITY_APP_STATE__ = state;
45
45
  globalThis.__AGENTUITY_APP_CONFIG__ = config;
46
+ // Store user-provided router(s) normalized as RouteMount[] for the entry file.
47
+ // When set, the entry file mounts these instead of auto-discovered route files.
48
+ if (config?.router) {
49
+ globalThis.__AGENTUITY_USER_ROUTER__ = normalizeRouterConfig(config.router);
50
+ }
46
51
  // Store shutdown function for cleanup
47
52
  const shutdown = config?.shutdown;
48
53
  if (shutdown) {
@@ -134,6 +139,34 @@ export function getAppState() {
134
139
  export function getAppConfig() {
135
140
  return globalThis.__AGENTUITY_APP_CONFIG__;
136
141
  }
142
+ /**
143
+ * Normalize the router config into a consistent RouteMount[] form.
144
+ * - Plain Hono → [{ path: '/api', router }]
145
+ * - { path, router } → [{ path, router }]
146
+ * - [{ path, router }, ...] → as-is
147
+ * @internal
148
+ */
149
+ function normalizeRouterConfig(
150
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
151
+ router) {
152
+ if (Array.isArray(router)) {
153
+ return router;
154
+ }
155
+ if ('router' in router && 'path' in router) {
156
+ return [router];
157
+ }
158
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
159
+ return [{ path: '/api', router: router }];
160
+ }
161
+ /**
162
+ * Get the user-provided router mounts from createApp({ router }).
163
+ * Returns undefined if no user router was provided (file-based routing).
164
+ * Used by generated entry file to skip file-based route discovery.
165
+ * @internal
166
+ */
167
+ export function getUserRouter() {
168
+ return globalThis.__AGENTUITY_USER_ROUTER__;
169
+ }
137
170
  /**
138
171
  * Set the global app config (for testing purposes)
139
172
  * @internal
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
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 CorsConfig, type Variables, type TriggerType, type PrivateVariables, type Env, type AppResult, type ShutdownHook, createApp, getApp, getAppState, getAppConfig, runShutdown, registerShutdownHook, fireEvent, } from './app';
2
+ export { type AppConfig, type CompressionConfig, type CorsConfig, type Variables, type TriggerType, type PrivateVariables, type Env, type RouteMount, type AppResult, type ShutdownHook, createApp, getApp, getAppState, getAppConfig, getUserRouter, runShutdown, registerShutdownHook, fireEvent, } from './app';
3
3
  export { createTrustedCorsOrigin, type TrustedCorsOriginOptions } from './cors';
4
4
  export { addEventListener, removeEventListener } from './_events';
5
5
  export { createBaseMiddleware, createCorsMiddleware, createOtelMiddleware, createCompressionMiddleware, createWebSessionMiddleware, getSessionSecret, } from './middleware';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // agent.ts exports
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
- export { createApp, getApp, getAppState, getAppConfig, runShutdown, registerShutdownHook, fireEvent, } from './app';
4
+ export { createApp, getApp, getAppState, getAppConfig, getUserRouter, runShutdown, registerShutdownHook, fireEvent, } from './app';
5
5
  // cors.ts exports (trusted origin helpers)
6
6
  export { createTrustedCorsOrigin } from './cors';
7
7
  export { addEventListener, removeEventListener } from './_events';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentuity/runtime",
3
- "version": "1.0.39",
3
+ "version": "1.0.40",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Agentuity employees and contributors",
6
6
  "type": "module",
@@ -26,11 +26,11 @@
26
26
  "prepublishOnly": "bun run clean && bun run build"
27
27
  },
28
28
  "dependencies": {
29
- "@agentuity/auth": "1.0.39",
30
- "@agentuity/core": "1.0.39",
31
- "@agentuity/frontend": "1.0.39",
32
- "@agentuity/schema": "1.0.39",
33
- "@agentuity/server": "1.0.39",
29
+ "@agentuity/auth": "1.0.40",
30
+ "@agentuity/core": "1.0.40",
31
+ "@agentuity/frontend": "1.0.40",
32
+ "@agentuity/schema": "1.0.40",
33
+ "@agentuity/server": "1.0.40",
34
34
  "@opentelemetry/api": "^1.9.0",
35
35
  "@opentelemetry/api-logs": "^0.207.0",
36
36
  "@opentelemetry/auto-instrumentations-node": "^0.66.0",
@@ -50,7 +50,7 @@
50
50
  "zod": "^4.3.5"
51
51
  },
52
52
  "devDependencies": {
53
- "@agentuity/test-utils": "1.0.39",
53
+ "@agentuity/test-utils": "1.0.40",
54
54
  "@types/bun": "latest",
55
55
  "@types/react": "^19.2.2",
56
56
  "@types/react-dom": "^19.2.2",
package/src/app.ts CHANGED
@@ -226,6 +226,71 @@ export interface AppConfig<TAppState = Record<string, never>> {
226
226
  * to zero which will cause the request to wait indefinitely.
227
227
  */
228
228
  requestTimeout?: number;
229
+
230
+ /**
231
+ * **Experimental** — Optional user-provided router(s) to use instead of file-based routing.
232
+ *
233
+ * When provided, the CLI's generated entry file mounts these routers instead
234
+ * of auto-discovering individual route files from `src/api/`. All Agentuity
235
+ * middleware (CORS, OTel, agent context) is applied to each mount path.
236
+ *
237
+ * Accepts three forms:
238
+ * - A plain `Hono` instance → mounted at `/api` (default)
239
+ * - A `{ path, router }` object → mounted at the specified path
240
+ * - An array of `{ path, router }` objects → each mounted at its path
241
+ *
242
+ * Use `createRouter()` to get typed access to Agentuity context variables
243
+ * (`c.var.logger`, `c.var.thread`, `c.var.session`, etc.), or use
244
+ * `new Hono<Env>()` for the same types with a plain Hono instance.
245
+ *
246
+ * @experimental This API may change in future releases.
247
+ *
248
+ * @example Single router (mounted at /api)
249
+ * ```typescript
250
+ * const router = createRouter();
251
+ * router.route('/users', usersRouter);
252
+ * export const app = await createApp({ router });
253
+ * ```
254
+ *
255
+ * @example Single router at custom path
256
+ * ```typescript
257
+ * const router = createRouter();
258
+ * router.route('/users', usersRouter);
259
+ * export const app = await createApp({
260
+ * router: { path: '/v1', router },
261
+ * });
262
+ * ```
263
+ *
264
+ * @example Multiple routers at different paths
265
+ * ```typescript
266
+ * export const app = await createApp({
267
+ * router: [
268
+ * { path: '/api/v1', router: v1Router },
269
+ * { path: '/api/v2', router: v2Router },
270
+ * ],
271
+ * });
272
+ * ```
273
+ */
274
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
275
+ router?: import('hono').Hono<any, any, any> | RouteMount | RouteMount[];
276
+ }
277
+
278
+ /**
279
+ * A user-provided router with its mount path.
280
+ *
281
+ * @experimental This API may change in future releases.
282
+ */
283
+ export interface RouteMount {
284
+ /**
285
+ * The base path to mount the router at (e.g. `/api`, `/api/v1`).
286
+ * Agentuity middleware (CORS, OTel, agent context) is applied to `{path}/*`.
287
+ */
288
+ path: string;
289
+ /**
290
+ * The Hono router to mount.
291
+ */
292
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
293
+ router: import('hono').Hono<any, any, any>;
229
294
  }
230
295
 
231
296
  export interface Variables<TAppState = Record<string, never>> {
@@ -373,6 +438,12 @@ export async function createApp<TAppState = Record<string, never>>(
373
438
  (globalThis as any).__AGENTUITY_APP_STATE__ = state;
374
439
  (globalThis as any).__AGENTUITY_APP_CONFIG__ = config;
375
440
 
441
+ // Store user-provided router(s) normalized as RouteMount[] for the entry file.
442
+ // When set, the entry file mounts these instead of auto-discovered route files.
443
+ if (config?.router) {
444
+ (globalThis as any).__AGENTUITY_USER_ROUTER__ = normalizeRouterConfig(config.router);
445
+ }
446
+
376
447
  // Store shutdown function for cleanup
377
448
  const shutdown = config?.shutdown;
378
449
  if (shutdown) {
@@ -464,6 +535,37 @@ export function getAppConfig<TAppState = any>(): AppConfig<TAppState> | undefine
464
535
  return (globalThis as any).__AGENTUITY_APP_CONFIG__;
465
536
  }
466
537
 
538
+ /**
539
+ * Normalize the router config into a consistent RouteMount[] form.
540
+ * - Plain Hono → [{ path: '/api', router }]
541
+ * - { path, router } → [{ path, router }]
542
+ * - [{ path, router }, ...] → as-is
543
+ * @internal
544
+ */
545
+ function normalizeRouterConfig(
546
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
547
+ router: import('hono').Hono<any, any, any> | RouteMount | RouteMount[]
548
+ ): RouteMount[] {
549
+ if (Array.isArray(router)) {
550
+ return router;
551
+ }
552
+ if ('router' in router && 'path' in router) {
553
+ return [router as RouteMount];
554
+ }
555
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
556
+ return [{ path: '/api', router: router as import('hono').Hono<any, any, any> }];
557
+ }
558
+
559
+ /**
560
+ * Get the user-provided router mounts from createApp({ router }).
561
+ * Returns undefined if no user router was provided (file-based routing).
562
+ * Used by generated entry file to skip file-based route discovery.
563
+ * @internal
564
+ */
565
+ export function getUserRouter(): RouteMount[] | undefined {
566
+ return (globalThis as any).__AGENTUITY_USER_ROUTER__;
567
+ }
568
+
467
569
  /**
468
570
  * Set the global app config (for testing purposes)
469
571
  * @internal
package/src/index.ts CHANGED
@@ -35,12 +35,14 @@ export {
35
35
  type TriggerType,
36
36
  type PrivateVariables,
37
37
  type Env,
38
+ type RouteMount,
38
39
  type AppResult,
39
40
  type ShutdownHook,
40
41
  createApp,
41
42
  getApp,
42
43
  getAppState,
43
44
  getAppConfig,
45
+ getUserRouter,
44
46
  runShutdown,
45
47
  registerShutdownHook,
46
48
  fireEvent,