@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.
Files changed (68) hide show
  1. package/AGENTS.md +34 -212
  2. package/dist/_metadata.d.ts +107 -0
  3. package/dist/_metadata.d.ts.map +1 -0
  4. package/dist/_metadata.js +179 -0
  5. package/dist/_metadata.js.map +1 -0
  6. package/dist/_process-protection.d.ts.map +1 -1
  7. package/dist/_process-protection.js +4 -0
  8. package/dist/_process-protection.js.map +1 -1
  9. package/dist/_services.d.ts.map +1 -1
  10. package/dist/_services.js +18 -17
  11. package/dist/_services.js.map +1 -1
  12. package/dist/_standalone.d.ts.map +1 -1
  13. package/dist/_standalone.js +17 -0
  14. package/dist/_standalone.js.map +1 -1
  15. package/dist/agent.d.ts.map +1 -1
  16. package/dist/agent.js +53 -12
  17. package/dist/agent.js.map +1 -1
  18. package/dist/app.d.ts +61 -10
  19. package/dist/app.d.ts.map +1 -1
  20. package/dist/app.js.map +1 -1
  21. package/dist/devmode.d.ts.map +1 -1
  22. package/dist/devmode.js +13 -5
  23. package/dist/devmode.js.map +1 -1
  24. package/dist/index.d.ts +3 -2
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +5 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/middleware.d.ts +61 -5
  29. package/dist/middleware.d.ts.map +1 -1
  30. package/dist/middleware.js +192 -25
  31. package/dist/middleware.js.map +1 -1
  32. package/dist/services/evalrun/http.d.ts.map +1 -1
  33. package/dist/services/evalrun/http.js +14 -4
  34. package/dist/services/evalrun/http.js.map +1 -1
  35. package/dist/services/local/vector.d.ts +5 -1
  36. package/dist/services/local/vector.d.ts.map +1 -1
  37. package/dist/services/local/vector.js +112 -0
  38. package/dist/services/local/vector.js.map +1 -1
  39. package/dist/services/session/http.d.ts.map +1 -1
  40. package/dist/services/session/http.js +7 -0
  41. package/dist/services/session/http.js.map +1 -1
  42. package/dist/services/session/local.d.ts +2 -2
  43. package/dist/services/session/local.d.ts.map +1 -1
  44. package/dist/services/session/local.js +5 -4
  45. package/dist/services/session/local.js.map +1 -1
  46. package/dist/session.d.ts +30 -4
  47. package/dist/session.d.ts.map +1 -1
  48. package/dist/session.js +90 -13
  49. package/dist/session.js.map +1 -1
  50. package/dist/workbench.d.ts.map +1 -1
  51. package/dist/workbench.js +13 -20
  52. package/dist/workbench.js.map +1 -1
  53. package/package.json +5 -5
  54. package/src/_metadata.ts +307 -0
  55. package/src/_process-protection.ts +6 -0
  56. package/src/_services.ts +23 -21
  57. package/src/_standalone.ts +22 -0
  58. package/src/agent.ts +63 -12
  59. package/src/app.ts +65 -9
  60. package/src/devmode.ts +16 -5
  61. package/src/index.ts +12 -2
  62. package/src/middleware.ts +221 -29
  63. package/src/services/evalrun/http.ts +15 -4
  64. package/src/services/local/vector.ts +160 -0
  65. package/src/services/session/http.ts +11 -0
  66. package/src/services/session/local.ts +9 -4
  67. package/src/session.ts +142 -13
  68. package/src/workbench.ts +13 -26
package/AGENTS.md CHANGED
@@ -2,99 +2,30 @@
2
2
 
3
3
  ## Package Overview
4
4
 
5
- Server runtime for building Agentuity applications. Built on Hono framework and optimized for Bun runtime with OpenTelemetry observability.
5
+ Hono-based server runtime for Agentuity applications, optimized for Bun with OpenTelemetry observability.
6
6
 
7
7
  ## Commands
8
8
 
9
- - **Build**: `bun run build` (compiles for Bun target)
10
- - **Typecheck**: `bun run typecheck` (runs TypeScript type checking)
11
- - **Clean**: `bun run clean` (removes dist/)
9
+ - **Build**: `bun run build`
10
+ - **Typecheck**: `bun run typecheck`
11
+ - **Test**: `bun test`
12
+ - **Clean**: `bun run clean`
12
13
 
13
14
  ## Architecture
14
15
 
15
- - **Runtime**: Bun server runtime (required for native WebSocket support)
16
- - **Framework**: Hono (lightweight web framework)
17
- - **Build target**: Bun runtime
16
+ - **Runtime**: Bun (required for native WebSocket)
17
+ - **Framework**: Hono
18
18
  - **Dependencies**: `@agentuity/core`, Hono, OpenTelemetry
19
- - **Observability**: Built-in OpenTelemetry for logs, traces, and metrics
20
- - **WebSocket**: Native Bun WebSocket via `hono/bun` (production and development)
21
- - **Dev Mode**: Integrates with Vite asset server for HMR (proxied through Bun server)
19
+ - **Features**: WebSocket, SSE, streaming, storage abstractions (kv, vector, stream)
22
20
 
23
- ## Structure
21
+ ## Code Conventions
24
22
 
25
- ```
26
- src/
27
- ├── index.ts # Main exports
28
- ├── app.ts # createApp() function
29
- ├── agent.ts # Agent types and createAgent()
30
- ├── router.ts # createRouter() with extended methods
31
- ├── logger.ts # Logging utilities
32
- ├── _server.ts # Internal server creation
33
- ├── _context.ts # Internal context management
34
- └── _util.ts # Internal utilities
35
- ```
36
-
37
- ## Code Style
38
-
39
- - **Hono patterns** - Follow Hono's context-based API design
40
- - **Type safety** - Extensive use of TypeScript generics
41
- - **Middleware pattern** - Support Hono middleware
42
- - **Async handlers** - All handlers can be async
43
- - **OpenTelemetry** - Use tracer/logger from context
44
-
45
- ## Important Conventions
46
-
47
- - **Agent context** - Every agent handler receives `AgentContext` as first parameter
48
- - **Schema validation** - Support StandardSchemaV1 (works with Zod, Valibot, etc.)
49
- - **Route validation** - Use `agent.validator()` for automatic input validation with full type safety
50
- - **Streaming support** - Agents can return ReadableStream for streaming responses
51
- - **WebSocket support** - Use `router.websocket()` for WebSocket routes
52
- - **SSE support** - Use `router.sse()` for Server-Sent Events
53
- - **Session tracking** - Each request gets unique sessionId
54
- - **Storage abstractions** - Provide kv, stream, vector interfaces
55
-
56
- ## Route Validation
23
+ - **Agent context**: Every handler receives `AgentContext` with logger, tracer, storage
24
+ - **Schema validation**: Use `agent.validator()` for automatic input validation
25
+ - **Observability**: Use `ctx.logger` not `console.log`
26
+ - **Type inference**: Let TypeScript infer handler types from schemas
57
27
 
58
- Routes can use `agent.validator()` to automatically validate request input using the agent's schema:
59
-
60
- ```typescript
61
- import { createRouter } from '@agentuity/runtime';
62
- import myAgent from './my-agent';
63
-
64
- const router = createRouter();
65
-
66
- // Automatic validation using agent's input schema
67
- router.post('/', myAgent.validator(), async (c) => {
68
- const data = c.req.valid('json'); // Fully typed from agent schema!
69
- const output = await myAgent.run(data);
70
- return c.json(output);
71
- });
72
-
73
- // Override with custom schema
74
- router.post(
75
- '/custom',
76
- agent.validator({
77
- input: z.object({ custom: z.string() }),
78
- }),
79
- async (c) => {
80
- const data = c.req.valid('json'); // Typed as { custom: string }
81
- return c.json(data);
82
- }
83
- );
84
-
85
- // GET routes don't need validation
86
- router.get('/', async (c) => {
87
- return c.json({ hello: 'world' });
88
- });
89
- ```
90
-
91
- The validator supports three overload signatures:
92
-
93
- - `agent.validator()` - Uses agent's input/output schemas
94
- - `agent.validator({ output: schema })` - Output-only validation (GET-compatible)
95
- - `agent.validator({ input: schema, output?: schema })` - Custom input/output schemas
96
-
97
- ## Agent Definition Pattern
28
+ ## Agent Pattern
98
29
 
99
30
  ```typescript
100
31
  import { createAgent } from '@agentuity/runtime';
@@ -103,150 +34,41 @@ import { s } from '@agentuity/schema';
103
34
  export default createAgent('my-agent', {
104
35
  description: 'What this agent does',
105
36
  schema: {
106
- input: s.object({
107
- /* ... */
108
- }),
109
- output: s.object({
110
- /* ... */
111
- }),
37
+ input: s.object({ name: s.string() }),
38
+ output: s.object({ id: s.string() }),
112
39
  },
113
40
  handler: async (ctx, input) => {
114
- // ctx.logger, ctx.tracer, ctx.kv, ctx.app, etc.
115
- return output;
41
+ // ctx.logger, ctx.kv, ctx.tracer available
42
+ return { id: `user-${input.name}` };
116
43
  },
117
44
  });
118
45
  ```
119
46
 
120
- **Note:** Internal metadata (id, agentId, filename, version) is automatically injected by the build system.
121
-
122
- ## Router Extensions
123
-
124
- The `createRouter()` function returns an extended Hono instance with:
125
-
126
- - **Standard HTTP methods**: `get`, `post`, `put`, `delete`, `patch`
127
- - **Streaming**: `stream(path, handler)` - Returns ReadableStream
128
- - **WebSocket**: `websocket(path, handler)` - WebSocket connections
129
- - **SSE**: `sse(path, handler)` - Server-Sent Events
130
-
131
- ## AgentContext API
132
-
133
- Every agent handler receives:
47
+ ## Route Validation
134
48
 
135
49
  ```typescript
136
- interface AgentContext {
137
- logger: Logger; // Structured logger
138
- tracer: Tracer; // OpenTelemetry tracer
139
- sessionId: string; // Unique session ID
140
- kv: KeyValueStorage; // Key-value storage
141
- stream: StreamStorage; // Stream storage
142
- vector: VectorStorage; // Vector storage
143
- state: Map<string, unknown>; // Request-scoped state
144
- thread: Thread; // Thread information
145
- session: Session; // Session information
146
- config: TConfig; // Agent-specific config from setup
147
- app: TAppState; // Application state from createApp
148
- waitUntil: (promise) => void; // Background tasks
149
- }
150
- ```
151
-
152
- ## Observability
153
-
154
- - **Logging**: Use `ctx.logger.info/warn/error()` not console.log
155
- - **Tracing**: Create spans with `ctx.tracer.startSpan()`
156
- - **Metrics**: Access via `c.var.meter` in Hono context
157
- - **Environment**: Metrics/traces sent to OTLP endpoints
158
-
159
- ## Type Safety
160
-
161
- **End-to-end type safety is a core feature of the runtime.** When you use `createAgent()` with schemas and `agent.validator()` in routes, TypeScript automatically infers correct types throughout your application.
162
-
163
- ### What IS Type-Safe ✅
164
-
165
- 1. **Route handler input types** - `c.req.valid('json')` is automatically typed from agent schema
166
- 2. **Agent handler types** - Both `ctx` and `input` parameters are fully typed
167
- 3. **Runtime validation** - Input/output validation happens automatically
168
- 4. **Schema overrides** - Custom schemas in `agent.validator({ input, output })` maintain type safety
169
- 5. **Multiple agents** - Each route maintains independent type safety
170
-
171
- ### Type Inference Best Practices
172
-
173
- **CRITICAL:** Do NOT add type annotations to agent handler parameters - let TypeScript infer them:
50
+ const router = createRouter();
174
51
 
175
- ```typescript
176
- // CORRECT: Let TypeScript infer types from schema
177
- const agent = createAgent('user', {
178
- schema: {
179
- input: z.object({ name: z.string(), age: z.number() }),
180
- output: z.object({ id: z.string() }),
181
- },
182
- handler: async (ctx, input) => {
183
- // ctx is typed as AgentContext
184
- // input is typed as { name: string, age: number }
185
- return { id: `user-${input.name}` };
186
- },
52
+ // Automatic validation from agent schema
53
+ router.post('/', myAgent.validator(), async (c) => {
54
+ const data = c.req.valid('json'); // Fully typed!
55
+ return c.json(await myAgent.run(data));
187
56
  });
188
-
189
- // ❌ WRONG: Explicit types defeat inference
190
- handler: async (ctx: AgentContext, input: any) => { ... }
191
57
  ```
192
58
 
193
- ### Hono Method Chaining
194
-
195
- For best type inference with Hono, use method chaining:
196
-
197
- ```typescript
198
- // ✅ RECOMMENDED: Method chaining preserves types
199
- const app = new Hono()
200
- .post('/users', userAgent.validator(), handler)
201
- .get('/users/:id', userAgent.validator({ output: UserSchema }), handler);
202
- ```
203
-
204
- ### Testing Type Safety
205
-
206
- **IMPORTANT:** Due to Hono's `testClient()` type inference limitations with method-chained apps, use `app.request()` for testing:
59
+ ## Type Safety
207
60
 
208
- ```typescript
209
- // ✅ CORRECT: Use app.request() for testing
210
- test('creates user', async () => {
211
- const app = new Hono().post('/users', agent.validator(), async (c) => {
212
- const data = c.req.valid('json'); // Fully typed!
213
- return c.json({ id: `user-${data.name}` });
214
- });
215
-
216
- const res = await app.request('/users', {
217
- method: 'POST',
218
- headers: { 'Content-Type': 'application/json' },
219
- body: JSON.stringify({ name: 'Alice', age: 30 }),
220
- });
221
-
222
- expect(res.status).toBe(200);
223
- const result = await res.json();
224
- expect(result.id).toBe('user-Alice');
225
- });
61
+ **CRITICAL:** Do NOT add type annotations to handler parameters - let TypeScript infer them.
226
62
 
227
- // AVOID: testClient has type inference issues
228
- import { testClient } from 'hono/testing';
229
- const client = testClient(app); // Returns unknown type
230
- ```
63
+ See [TYPE_SAFETY.md](TYPE_SAFETY.md) for detailed documentation.
231
64
 
232
- See `test/agent-type-safety.test.ts` for comprehensive type-safe testing examples.
65
+ ## Testing
233
66
 
234
- For detailed type safety documentation, see `TYPE_SAFETY.md`.
67
+ - Use `app.request()` for route testing (NOT `testClient()`)
68
+ - Mock contexts from `test/helpers/test-context.ts`
69
+ - Import from `../src/` in tests
235
70
 
236
- ## Testing
71
+ ## Publishing
237
72
 
238
- - **Test runner**: Use Bun's test runner: `bun test`
239
- - **Test structure**: All tests in `test/` folder parallel to `src/`
240
- - **Test imports**: Import from `../src/` not `../`
241
- - **Mock contexts**: Use `TestAgentContext` from `test/helpers/test-context.ts`
242
- - **Mock services**: Use mock storage interfaces (kv, stream, vector, etc.)
243
- - **Route testing**: Use `app.request()` for testing routes (NOT `testClient()`)
244
- - **Type verification**: Let TypeScript infer agent handler types - do NOT add type annotations
245
-
246
- ## Publishing Checklist
247
-
248
- 1. Run `bun run build` to compile for Bun runtime
249
- 2. Verify OpenTelemetry dependencies are correct versions
250
- 3. Test with real Hono server
251
- 4. Must publish **after** @agentuity/core
252
- 5. Ensure React is only in devDependencies (for type checking web components)
73
+ 1. Run build, typecheck, test
74
+ 2. Publish **after** `@agentuity/core`
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Build metadata utilities
3
+ * Provides cached access to agentuity.metadata.json
4
+ */
5
+ export interface BuildMetadataAgent {
6
+ filename: string;
7
+ id: string;
8
+ agentId: string;
9
+ version: string;
10
+ name: string;
11
+ description?: string;
12
+ projectId?: string;
13
+ schema?: {
14
+ input?: string;
15
+ output?: string;
16
+ };
17
+ evals?: Array<{
18
+ filename: string;
19
+ id: string;
20
+ evalId: string;
21
+ name: string;
22
+ version: string;
23
+ description?: string;
24
+ agentIdentifier?: string;
25
+ projectId?: string;
26
+ }>;
27
+ }
28
+ export interface BuildMetadataRoute {
29
+ id: string;
30
+ filename: string;
31
+ path: string;
32
+ method: 'get' | 'post' | 'put' | 'delete' | 'patch';
33
+ version: string;
34
+ type?: string;
35
+ agentIds?: string[];
36
+ config?: Record<string, unknown>;
37
+ schema?: {
38
+ input?: string;
39
+ output?: string;
40
+ };
41
+ }
42
+ export interface BuildMetadata {
43
+ routes: BuildMetadataRoute[];
44
+ agents: BuildMetadataAgent[];
45
+ assets?: string[];
46
+ project: {
47
+ id: string;
48
+ name: string;
49
+ version?: string;
50
+ description?: string;
51
+ keywords?: string[];
52
+ orgId?: string;
53
+ };
54
+ deployment: {
55
+ id: string;
56
+ date: string;
57
+ build: {
58
+ bun: string;
59
+ agentuity: string;
60
+ arch: string;
61
+ platform: string;
62
+ };
63
+ git?: {
64
+ branch?: string;
65
+ repo?: string;
66
+ provider?: string;
67
+ tags?: string[];
68
+ commit?: string;
69
+ message?: string;
70
+ };
71
+ };
72
+ }
73
+ /**
74
+ * Get the path to agentuity.metadata.json
75
+ */
76
+ export declare function getMetadataPath(): string;
77
+ /**
78
+ * Load and cache the build metadata from agentuity.metadata.json
79
+ * Returns undefined if the file doesn't exist or can't be parsed
80
+ */
81
+ export declare function loadBuildMetadata(): BuildMetadata | undefined;
82
+ export type BuildMetadataEval = NonNullable<BuildMetadataAgent['evals']>[number];
83
+ /**
84
+ * Look up agent metadata by name
85
+ */
86
+ export declare function getAgentMetadataByName(agentName: string): BuildMetadataAgent | undefined;
87
+ /**
88
+ * Look up agent metadata by agentId
89
+ */
90
+ export declare function getAgentMetadataByAgentId(agentId: string): BuildMetadataAgent | undefined;
91
+ /**
92
+ * Look up eval metadata by agent name and eval name
93
+ */
94
+ export declare function getEvalMetadata(agentName: string, evalName: string): BuildMetadataEval | undefined;
95
+ /**
96
+ * Look up eval metadata by agentId and eval name
97
+ */
98
+ export declare function getEvalMetadataByAgentId(agentId: string, evalName: string): BuildMetadataEval | undefined;
99
+ /**
100
+ * Check if metadata file exists (uses cache)
101
+ */
102
+ export declare function hasMetadata(): boolean;
103
+ /**
104
+ * Clear the metadata cache (useful for testing or hot reload)
105
+ */
106
+ export declare function clearMetadataCache(): void;
107
+ //# sourceMappingURL=_metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_metadata.d.ts","sourceRoot":"","sources":["../src/_metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Build metadata utilities
3
+ * Provides cached access to agentuity.metadata.json
4
+ */
5
+ import { join } from 'node:path';
6
+ import { existsSync, readFileSync } from 'node:fs';
7
+ import { internal } from './logger/internal';
8
+ // Cached metadata - null means not yet loaded, undefined means file not found
9
+ let _metadataCache = null;
10
+ /**
11
+ * Get the path to agentuity.metadata.json
12
+ */
13
+ export function getMetadataPath() {
14
+ return join(process.cwd(), '.agentuity', 'agentuity.metadata.json');
15
+ }
16
+ /**
17
+ * Load and cache the build metadata from agentuity.metadata.json
18
+ * Returns undefined if the file doesn't exist or can't be parsed
19
+ */
20
+ export function loadBuildMetadata() {
21
+ // Return cached value if already loaded
22
+ if (_metadataCache !== null) {
23
+ internal.info('[metadata] loadBuildMetadata: returning cached value (exists: %s)', _metadataCache !== undefined);
24
+ return _metadataCache;
25
+ }
26
+ const metadataPath = getMetadataPath();
27
+ internal.info('[metadata] loadBuildMetadata: checking path %s', metadataPath);
28
+ internal.info('[metadata] loadBuildMetadata: cwd=%s', process.cwd());
29
+ if (!existsSync(metadataPath)) {
30
+ internal.info('[metadata] agentuity.metadata.json not found at %s', metadataPath);
31
+ _metadataCache = undefined;
32
+ return undefined;
33
+ }
34
+ try {
35
+ internal.info('[metadata] loadBuildMetadata: file exists, reading...');
36
+ const content = readFileSync(metadataPath, 'utf-8');
37
+ const metadata = JSON.parse(content);
38
+ _metadataCache = metadata;
39
+ // Log agent and eval counts
40
+ let totalEvals = 0;
41
+ for (const agent of metadata.agents ?? []) {
42
+ totalEvals += agent.evals?.length ?? 0;
43
+ }
44
+ internal.info('[metadata] loaded agentuity.metadata.json: %d agents, %d routes, %d total evals', metadata.agents?.length ?? 0, metadata.routes?.length ?? 0, totalEvals);
45
+ // Log agent names and their eval counts
46
+ for (const agent of metadata.agents ?? []) {
47
+ internal.info('[metadata] agent: %s (evals: %d)', agent.name, agent.evals?.length ?? 0);
48
+ }
49
+ return metadata;
50
+ }
51
+ catch (err) {
52
+ internal.info('[metadata] failed to load agentuity.metadata.json: %s', err);
53
+ _metadataCache = undefined;
54
+ return undefined;
55
+ }
56
+ }
57
+ // Agent lookup cache - built lazily from metadata
58
+ let _agentsByName = null;
59
+ let _agentsByAgentId = null;
60
+ // Eval lookup cache - nested map: agentName -> evalName -> evalMetadata
61
+ let _evalsByAgentName = null;
62
+ let _evalsByAgentId = null;
63
+ // Track if we've already attempted a reload for empty eval map
64
+ let _evalReloadAttempted = false;
65
+ /**
66
+ * Build agent lookup maps from metadata
67
+ */
68
+ function ensureAgentMaps() {
69
+ if (_agentsByName !== null) {
70
+ internal.info(`[metadata] ensureAgentMaps: already initialized, skipping`);
71
+ return;
72
+ }
73
+ internal.info(`[metadata] ensureAgentMaps: initializing agent and eval maps`);
74
+ _agentsByName = new Map();
75
+ _agentsByAgentId = new Map();
76
+ _evalsByAgentName = new Map();
77
+ _evalsByAgentId = new Map();
78
+ const metadata = loadBuildMetadata();
79
+ if (!metadata?.agents) {
80
+ internal.info(`[metadata] ensureAgentMaps: no metadata or no agents found`);
81
+ return;
82
+ }
83
+ internal.info(`[metadata] ensureAgentMaps: processing ${metadata.agents.length} agents`);
84
+ for (const agent of metadata.agents) {
85
+ if (agent.name) {
86
+ _agentsByName.set(agent.name, agent);
87
+ }
88
+ if (agent.agentId) {
89
+ _agentsByAgentId.set(agent.agentId, agent);
90
+ }
91
+ // Build eval lookup maps
92
+ if (agent.evals && agent.evals.length > 0) {
93
+ const evalsByName = new Map();
94
+ for (const evalMeta of agent.evals) {
95
+ if (evalMeta.name) {
96
+ evalsByName.set(evalMeta.name, evalMeta);
97
+ internal.info(`[metadata] Indexed eval: agent='${agent.name}' eval='${evalMeta.name}' evalId='${evalMeta.evalId}'`);
98
+ }
99
+ }
100
+ if (agent.name) {
101
+ _evalsByAgentName.set(agent.name, evalsByName);
102
+ }
103
+ if (agent.agentId) {
104
+ _evalsByAgentId.set(agent.agentId, evalsByName);
105
+ }
106
+ }
107
+ else {
108
+ internal.info(`[metadata] Agent '${agent.name}' has no evals`);
109
+ }
110
+ }
111
+ internal.info(`[metadata] Eval maps built: ${_evalsByAgentName?.size ?? 0} agents with evals`);
112
+ }
113
+ /**
114
+ * Look up agent metadata by name
115
+ */
116
+ export function getAgentMetadataByName(agentName) {
117
+ ensureAgentMaps();
118
+ return _agentsByName?.get(agentName);
119
+ }
120
+ /**
121
+ * Look up agent metadata by agentId
122
+ */
123
+ export function getAgentMetadataByAgentId(agentId) {
124
+ ensureAgentMaps();
125
+ return _agentsByAgentId?.get(agentId);
126
+ }
127
+ /**
128
+ * Look up eval metadata by agent name and eval name
129
+ */
130
+ export function getEvalMetadata(agentName, evalName) {
131
+ ensureAgentMaps();
132
+ // If eval map is empty, the cache may have been built before metadata was ready
133
+ // Try clearing and reloading once (only attempt once to avoid repeated reloads)
134
+ if (_evalsByAgentName?.size === 0 && !_evalReloadAttempted) {
135
+ _evalReloadAttempted = true;
136
+ internal.info(`[metadata] getEvalMetadata: eval map is empty, attempting cache clear and reload`);
137
+ clearMetadataCache();
138
+ ensureAgentMaps();
139
+ internal.info(`[metadata] getEvalMetadata: after reload, eval map size: ${_evalsByAgentName?.size ?? 0}`);
140
+ }
141
+ const agentEvals = _evalsByAgentName?.get(agentName);
142
+ internal.info(`[metadata] getEvalMetadata('${agentName}', '${evalName}'): agentEvals=${agentEvals ? `Map(${agentEvals.size})` : 'undefined'}`);
143
+ if (agentEvals) {
144
+ internal.info(`[metadata] Available evals for agent '${agentName}': [${[...agentEvals.keys()].join(', ')}]`);
145
+ }
146
+ if (!agentEvals) {
147
+ internal.info(`[metadata] Available agents in eval map: [${[...(_evalsByAgentName?.keys() ?? [])].join(', ')}]`);
148
+ }
149
+ const result = agentEvals?.get(evalName);
150
+ internal.info(`[metadata] getEvalMetadata result: ${result ? `found evalId=${result.evalId}` : 'not found'}`);
151
+ return result;
152
+ }
153
+ /**
154
+ * Look up eval metadata by agentId and eval name
155
+ */
156
+ export function getEvalMetadataByAgentId(agentId, evalName) {
157
+ ensureAgentMaps();
158
+ return _evalsByAgentId?.get(agentId)?.get(evalName);
159
+ }
160
+ /**
161
+ * Check if metadata file exists (uses cache)
162
+ */
163
+ export function hasMetadata() {
164
+ return loadBuildMetadata() !== undefined;
165
+ }
166
+ /**
167
+ * Clear the metadata cache (useful for testing or hot reload)
168
+ */
169
+ export function clearMetadataCache() {
170
+ internal.info('[metadata] clearMetadataCache: clearing all caches');
171
+ _metadataCache = null;
172
+ _agentsByName = null;
173
+ _agentsByAgentId = null;
174
+ _evalsByAgentName = null;
175
+ _evalsByAgentId = null;
176
+ // Note: _evalReloadAttempted is intentionally NOT reset here
177
+ // to prevent infinite reload loops in getEvalMetadata
178
+ }
179
+ //# sourceMappingURL=_metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_metadata.js","sourceRoot":"","sources":["../src/_metadata.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"_process-protection.d.ts","sourceRoot":"","sources":["../src/_process-protection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAYlD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAOnD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAEjD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C"}
1
+ {"version":3,"file":"_process-protection.d.ts","sourceRoot":"","sources":["../src/_process-protection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAelD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAUnD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAEjD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C"}
@@ -19,6 +19,8 @@ export function enableProcessExitProtection() {
19
19
  return;
20
20
  }
21
21
  protectionEnabled = true;
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ globalThis.AGENTUITY_PROCESS_EXIT = originalExit;
22
24
  // Replace process.exit with a function that throws
23
25
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
26
  process.exit = function (code) {
@@ -32,6 +34,8 @@ export function disableProcessExitProtection() {
32
34
  if (!protectionEnabled) {
33
35
  return;
34
36
  }
37
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
+ globalThis.AGENTUITY_PROCESS_EXIT = undefined;
35
39
  protectionEnabled = false;
36
40
  process.exit = originalExit;
37
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"_process-protection.js","sourceRoot":"","sources":["../src/_process-protection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,kCAAkC;AAClC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAEhD,yCAAyC;AACzC,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAE9B,MAAM,uBAAuB,GAAG,eAAe,CAC9C,yBAAyB,EACzB,yGAAyG,CACzG,EAEG,CAAC;AAEL;;;GAGG;AACH,MAAM,UAAU,2BAA2B;IAC1C,IAAI,iBAAiB,EAAE,CAAC;QACvB,OAAO;IACR,CAAC;IAED,iBAAiB,GAAG,IAAI,CAAC;IAEzB,mDAAmD;IACnD,8DAA8D;IAC7D,OAAe,CAAC,IAAI,GAAG,UAAU,IAAyC;QAC1E,MAAM,IAAI,uBAAuB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B;IAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxB,OAAO;IACR,CAAC;IAED,iBAAiB,GAAG,KAAK,CAAC;IAC1B,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAa;IACzC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IAClC,OAAO,iBAAiB,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"_process-protection.js","sourceRoot":"","sources":["../src/_process-protection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,kCAAkC;AAClC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAEhD,yCAAyC;AACzC,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAE9B,MAAM,uBAAuB,GAAG,eAAe,CAC9C,yBAAyB,EACzB,yGAAyG,CACzG,EAEG,CAAC;AAEL;;;GAGG;AACH,MAAM,UAAU,2BAA2B;IAC1C,IAAI,iBAAiB,EAAE,CAAC;QACvB,OAAO;IACR,CAAC;IAED,iBAAiB,GAAG,IAAI,CAAC;IAEzB,8DAA8D;IAC7D,UAAkB,CAAC,sBAAsB,GAAG,YAAY,CAAC;IAE1D,mDAAmD;IACnD,8DAA8D;IAC7D,OAAe,CAAC,IAAI,GAAG,UAAU,IAAyC;QAC1E,MAAM,IAAI,uBAAuB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B;IAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxB,OAAO;IACR,CAAC;IAED,8DAA8D;IAC7D,UAAkB,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAEvD,iBAAiB,GAAG,KAAK,CAAC;IAC1B,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAa;IACzC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IAClC,OAAO,iBAAiB,CAAC;AAC1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"_services.d.ts","sourceRoot":"","sources":["../src/_services.ts"],"names":[],"mappings":"AACA,OAAO,EAKN,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,aAAa,EAIlB,KAAK,MAAM,EACX,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAEzB,MAAM,iBAAiB,CAAC;AAmBzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAGN,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,MAAM,WAAW,CAAC;AA4InB,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM;;;;EA2EzF;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAElD;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD;AAGD,wBAAgB,cAAc,IAAI,GAAG,GAAG,IAAI,CAE3C;AAED,wBAAgB,uBAAuB,yBAEtC;AAED,wBAAgB,uBAAuB,yBAEtC;AAED,wBAAgB,WAAW;;;;EAE1B;AAGD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,UAAQ,QAkC7D"}
1
+ {"version":3,"file":"_services.d.ts","sourceRoot":"","sources":["../src/_services.ts"],"names":[],"mappings":"AACA,OAAO,EAKN,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,aAAa,EAIlB,KAAK,MAAM,EACX,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAEzB,MAAM,iBAAiB,CAAC;AAmBzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAGN,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,MAAM,WAAW,CAAC;AA6InB,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM;;;;EA4EzF;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAElD;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD;AAGD,wBAAgB,cAAc,IAAI,GAAG,GAAG,IAAI,CAE3C;AAED,wBAAgB,uBAAuB,yBAEtC;AAED,wBAAgB,uBAAuB,yBAEtC;AAED,wBAAgB,WAAW;;;;EAE1B;AAGD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,UAAQ,QAkC7D"}