@agentuity/runtime 0.1.14 → 0.1.16

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 (269) hide show
  1. package/dist/_config.d.ts +100 -0
  2. package/dist/_config.d.ts.map +1 -0
  3. package/dist/_config.js +147 -0
  4. package/dist/_config.js.map +1 -0
  5. package/dist/_context.d.ts +76 -0
  6. package/dist/_context.d.ts.map +1 -0
  7. package/dist/_context.js +147 -0
  8. package/dist/_context.js.map +1 -0
  9. package/dist/_events.d.ts +64 -0
  10. package/dist/_events.d.ts.map +1 -0
  11. package/dist/_events.js +92 -0
  12. package/dist/_events.js.map +1 -0
  13. package/dist/_idle.d.ts +7 -0
  14. package/dist/_idle.d.ts.map +1 -0
  15. package/dist/_idle.js +10 -0
  16. package/dist/_idle.js.map +1 -0
  17. package/dist/_metadata.d.ts +117 -0
  18. package/dist/_metadata.d.ts.map +1 -0
  19. package/dist/_metadata.js +246 -0
  20. package/dist/_metadata.js.map +1 -0
  21. package/dist/_process-protection.d.ts +25 -0
  22. package/dist/_process-protection.d.ts.map +1 -0
  23. package/dist/_process-protection.js +65 -0
  24. package/dist/_process-protection.js.map +1 -0
  25. package/dist/_server.d.ts +46 -0
  26. package/dist/_server.d.ts.map +1 -0
  27. package/dist/_server.js +85 -0
  28. package/dist/_server.js.map +1 -0
  29. package/dist/_services.d.ts +21 -0
  30. package/dist/_services.d.ts.map +1 -0
  31. package/dist/_services.js +248 -0
  32. package/dist/_services.js.map +1 -0
  33. package/dist/_standalone.d.ts +208 -0
  34. package/dist/_standalone.d.ts.map +1 -0
  35. package/dist/_standalone.js +569 -0
  36. package/dist/_standalone.js.map +1 -0
  37. package/dist/_tokens.d.ts +12 -0
  38. package/dist/_tokens.d.ts.map +1 -0
  39. package/dist/_tokens.js +96 -0
  40. package/dist/_tokens.js.map +1 -0
  41. package/dist/_util.d.ts +16 -0
  42. package/dist/_util.d.ts.map +1 -0
  43. package/dist/_util.js +54 -0
  44. package/dist/_util.js.map +1 -0
  45. package/dist/_validation.d.ts +89 -0
  46. package/dist/_validation.d.ts.map +1 -0
  47. package/dist/_validation.js +29 -0
  48. package/dist/_validation.js.map +1 -0
  49. package/dist/_waituntil.d.ts +18 -0
  50. package/dist/_waituntil.d.ts.map +1 -0
  51. package/dist/_waituntil.js +97 -0
  52. package/dist/_waituntil.js.map +1 -0
  53. package/dist/agent.d.ts +1210 -0
  54. package/dist/agent.d.ts.map +1 -0
  55. package/dist/agent.js +903 -0
  56. package/dist/agent.js.map +1 -0
  57. package/dist/app.d.ts +322 -0
  58. package/dist/app.d.ts.map +1 -0
  59. package/dist/app.js +160 -0
  60. package/dist/app.js.map +1 -0
  61. package/dist/bun-s3-patch.d.ts +37 -0
  62. package/dist/bun-s3-patch.d.ts.map +1 -0
  63. package/dist/bun-s3-patch.js +139 -0
  64. package/dist/bun-s3-patch.js.map +1 -0
  65. package/dist/cors.d.ts +42 -0
  66. package/dist/cors.d.ts.map +1 -0
  67. package/dist/cors.js +117 -0
  68. package/dist/cors.js.map +1 -0
  69. package/dist/devmode.d.ts +3 -0
  70. package/dist/devmode.d.ts.map +1 -0
  71. package/dist/devmode.js +167 -0
  72. package/dist/devmode.js.map +1 -0
  73. package/dist/eval.d.ts +91 -0
  74. package/dist/eval.d.ts.map +1 -0
  75. package/dist/eval.js +16 -0
  76. package/dist/eval.js.map +1 -0
  77. package/dist/handlers/cron.d.ts +47 -0
  78. package/dist/handlers/cron.d.ts.map +1 -0
  79. package/dist/handlers/cron.js +49 -0
  80. package/dist/handlers/cron.js.map +1 -0
  81. package/dist/handlers/index.d.ts +5 -0
  82. package/dist/handlers/index.d.ts.map +1 -0
  83. package/dist/handlers/index.js +5 -0
  84. package/dist/handlers/index.js.map +1 -0
  85. package/dist/handlers/sse.d.ts +91 -0
  86. package/dist/handlers/sse.d.ts.map +1 -0
  87. package/dist/handlers/sse.js +213 -0
  88. package/dist/handlers/sse.js.map +1 -0
  89. package/dist/handlers/stream.d.ts +52 -0
  90. package/dist/handlers/stream.d.ts.map +1 -0
  91. package/dist/handlers/stream.js +116 -0
  92. package/dist/handlers/stream.js.map +1 -0
  93. package/dist/handlers/websocket.d.ts +49 -0
  94. package/dist/handlers/websocket.d.ts.map +1 -0
  95. package/dist/handlers/websocket.js +143 -0
  96. package/dist/handlers/websocket.js.map +1 -0
  97. package/dist/index.d.ts +71 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/dist/index.js +58 -0
  100. package/dist/index.js.map +1 -0
  101. package/dist/logger/console.d.ts +70 -0
  102. package/dist/logger/console.d.ts.map +1 -0
  103. package/dist/logger/console.js +274 -0
  104. package/dist/logger/console.js.map +1 -0
  105. package/dist/logger/index.d.ts +3 -0
  106. package/dist/logger/index.d.ts.map +1 -0
  107. package/dist/logger/index.js +3 -0
  108. package/dist/logger/index.js.map +1 -0
  109. package/dist/logger/internal.d.ts +79 -0
  110. package/dist/logger/internal.d.ts.map +1 -0
  111. package/dist/logger/internal.js +133 -0
  112. package/dist/logger/internal.js.map +1 -0
  113. package/dist/logger/logger.d.ts +41 -0
  114. package/dist/logger/logger.d.ts.map +1 -0
  115. package/dist/logger/logger.js +2 -0
  116. package/dist/logger/logger.js.map +1 -0
  117. package/dist/logger/user.d.ts +8 -0
  118. package/dist/logger/user.d.ts.map +1 -0
  119. package/dist/logger/user.js +7 -0
  120. package/dist/logger/user.js.map +1 -0
  121. package/dist/logger/util.d.ts +11 -0
  122. package/dist/logger/util.d.ts.map +1 -0
  123. package/dist/logger/util.js +77 -0
  124. package/dist/logger/util.js.map +1 -0
  125. package/dist/middleware.d.ts +112 -0
  126. package/dist/middleware.d.ts.map +1 -0
  127. package/dist/middleware.js +507 -0
  128. package/dist/middleware.js.map +1 -0
  129. package/dist/otel/config.d.ts +19 -0
  130. package/dist/otel/config.d.ts.map +1 -0
  131. package/dist/otel/config.js +26 -0
  132. package/dist/otel/config.js.map +1 -0
  133. package/dist/otel/console.d.ts +33 -0
  134. package/dist/otel/console.d.ts.map +1 -0
  135. package/dist/otel/console.js +86 -0
  136. package/dist/otel/console.js.map +1 -0
  137. package/dist/otel/exporters/index.d.ts +4 -0
  138. package/dist/otel/exporters/index.d.ts.map +1 -0
  139. package/dist/otel/exporters/index.js +4 -0
  140. package/dist/otel/exporters/index.js.map +1 -0
  141. package/dist/otel/exporters/jsonl-log-exporter.d.ts +36 -0
  142. package/dist/otel/exporters/jsonl-log-exporter.d.ts.map +1 -0
  143. package/dist/otel/exporters/jsonl-log-exporter.js +103 -0
  144. package/dist/otel/exporters/jsonl-log-exporter.js.map +1 -0
  145. package/dist/otel/exporters/jsonl-metric-exporter.d.ts +40 -0
  146. package/dist/otel/exporters/jsonl-metric-exporter.d.ts.map +1 -0
  147. package/dist/otel/exporters/jsonl-metric-exporter.js +104 -0
  148. package/dist/otel/exporters/jsonl-metric-exporter.js.map +1 -0
  149. package/dist/otel/exporters/jsonl-trace-exporter.d.ts +36 -0
  150. package/dist/otel/exporters/jsonl-trace-exporter.d.ts.map +1 -0
  151. package/dist/otel/exporters/jsonl-trace-exporter.js +111 -0
  152. package/dist/otel/exporters/jsonl-trace-exporter.js.map +1 -0
  153. package/dist/otel/fetch.d.ts +12 -0
  154. package/dist/otel/fetch.d.ts.map +1 -0
  155. package/dist/otel/fetch.js +82 -0
  156. package/dist/otel/fetch.js.map +1 -0
  157. package/dist/otel/http.d.ts +16 -0
  158. package/dist/otel/http.d.ts.map +1 -0
  159. package/dist/otel/http.js +44 -0
  160. package/dist/otel/http.js.map +1 -0
  161. package/dist/otel/logger.d.ts +37 -0
  162. package/dist/otel/logger.d.ts.map +1 -0
  163. package/dist/otel/logger.js +268 -0
  164. package/dist/otel/logger.js.map +1 -0
  165. package/dist/otel/otel.d.ts +65 -0
  166. package/dist/otel/otel.d.ts.map +1 -0
  167. package/dist/otel/otel.js +261 -0
  168. package/dist/otel/otel.js.map +1 -0
  169. package/dist/router.d.ts +100 -0
  170. package/dist/router.d.ts.map +1 -0
  171. package/dist/router.js +163 -0
  172. package/dist/router.js.map +1 -0
  173. package/dist/services/evalrun/composite.d.ts +21 -0
  174. package/dist/services/evalrun/composite.d.ts.map +1 -0
  175. package/dist/services/evalrun/composite.js +26 -0
  176. package/dist/services/evalrun/composite.js.map +1 -0
  177. package/dist/services/evalrun/http.d.ts +24 -0
  178. package/dist/services/evalrun/http.d.ts.map +1 -0
  179. package/dist/services/evalrun/http.js +86 -0
  180. package/dist/services/evalrun/http.js.map +1 -0
  181. package/dist/services/evalrun/index.d.ts +5 -0
  182. package/dist/services/evalrun/index.d.ts.map +1 -0
  183. package/dist/services/evalrun/index.js +5 -0
  184. package/dist/services/evalrun/index.js.map +1 -0
  185. package/dist/services/evalrun/json.d.ts +21 -0
  186. package/dist/services/evalrun/json.d.ts.map +1 -0
  187. package/dist/services/evalrun/json.js +38 -0
  188. package/dist/services/evalrun/json.js.map +1 -0
  189. package/dist/services/evalrun/local.d.ts +19 -0
  190. package/dist/services/evalrun/local.d.ts.map +1 -0
  191. package/dist/services/evalrun/local.js +22 -0
  192. package/dist/services/evalrun/local.js.map +1 -0
  193. package/dist/services/local/_db.d.ts +4 -0
  194. package/dist/services/local/_db.d.ts.map +1 -0
  195. package/dist/services/local/_db.js +123 -0
  196. package/dist/services/local/_db.js.map +1 -0
  197. package/dist/services/local/_router.d.ts +3 -0
  198. package/dist/services/local/_router.d.ts.map +1 -0
  199. package/dist/services/local/_router.js +28 -0
  200. package/dist/services/local/_router.js.map +1 -0
  201. package/dist/services/local/_util.d.ts +18 -0
  202. package/dist/services/local/_util.d.ts.map +1 -0
  203. package/dist/services/local/_util.js +44 -0
  204. package/dist/services/local/_util.js.map +1 -0
  205. package/dist/services/local/index.d.ts +7 -0
  206. package/dist/services/local/index.d.ts.map +1 -0
  207. package/dist/services/local/index.js +7 -0
  208. package/dist/services/local/index.js.map +1 -0
  209. package/dist/services/local/keyvalue.d.ts +17 -0
  210. package/dist/services/local/keyvalue.d.ts.map +1 -0
  211. package/dist/services/local/keyvalue.js +125 -0
  212. package/dist/services/local/keyvalue.js.map +1 -0
  213. package/dist/services/local/stream.d.ts +12 -0
  214. package/dist/services/local/stream.d.ts.map +1 -0
  215. package/dist/services/local/stream.js +262 -0
  216. package/dist/services/local/stream.js.map +1 -0
  217. package/dist/services/local/vector.d.ts +17 -0
  218. package/dist/services/local/vector.d.ts.map +1 -0
  219. package/dist/services/local/vector.js +303 -0
  220. package/dist/services/local/vector.js.map +1 -0
  221. package/dist/services/sandbox/http.d.ts +13 -0
  222. package/dist/services/sandbox/http.d.ts.map +1 -0
  223. package/dist/services/sandbox/http.js +130 -0
  224. package/dist/services/sandbox/http.js.map +1 -0
  225. package/dist/services/sandbox/index.d.ts +2 -0
  226. package/dist/services/sandbox/index.d.ts.map +1 -0
  227. package/dist/services/sandbox/index.js +2 -0
  228. package/dist/services/sandbox/index.js.map +1 -0
  229. package/dist/services/session/composite.d.ts +21 -0
  230. package/dist/services/session/composite.d.ts.map +1 -0
  231. package/dist/services/session/composite.js +26 -0
  232. package/dist/services/session/composite.js.map +1 -0
  233. package/dist/services/session/http.d.ts +34 -0
  234. package/dist/services/session/http.d.ts.map +1 -0
  235. package/dist/services/session/http.js +80 -0
  236. package/dist/services/session/http.js.map +1 -0
  237. package/dist/services/session/index.d.ts +5 -0
  238. package/dist/services/session/index.d.ts.map +1 -0
  239. package/dist/services/session/index.js +5 -0
  240. package/dist/services/session/index.js.map +1 -0
  241. package/dist/services/session/json.d.ts +22 -0
  242. package/dist/services/session/json.d.ts.map +1 -0
  243. package/dist/services/session/json.js +35 -0
  244. package/dist/services/session/json.js.map +1 -0
  245. package/dist/services/session/local.d.ts +19 -0
  246. package/dist/services/session/local.d.ts.map +1 -0
  247. package/dist/services/session/local.js +23 -0
  248. package/dist/services/session/local.js.map +1 -0
  249. package/dist/services/thread/local.d.ts +20 -0
  250. package/dist/services/thread/local.d.ts.map +1 -0
  251. package/dist/services/thread/local.js +158 -0
  252. package/dist/services/thread/local.js.map +1 -0
  253. package/dist/session.d.ts +734 -0
  254. package/dist/session.d.ts.map +1 -0
  255. package/dist/session.js +1139 -0
  256. package/dist/session.js.map +1 -0
  257. package/dist/validator.d.ts +142 -0
  258. package/dist/validator.d.ts.map +1 -0
  259. package/dist/validator.js +149 -0
  260. package/dist/validator.js.map +1 -0
  261. package/dist/web.d.ts +8 -0
  262. package/dist/web.d.ts.map +1 -0
  263. package/dist/web.js +66 -0
  264. package/dist/web.js.map +1 -0
  265. package/dist/workbench.d.ts +17 -0
  266. package/dist/workbench.d.ts.map +1 -0
  267. package/dist/workbench.js +507 -0
  268. package/dist/workbench.js.map +1 -0
  269. package/package.json +8 -8
@@ -0,0 +1,569 @@
1
+ import { context, SpanKind, SpanStatusCode, trace } from '@opentelemetry/api';
2
+ import { TraceState } from '@opentelemetry/core';
3
+ import { AGENT_RUNTIME, AGENT_IDS, isInsideAgentRuntime } from './_config';
4
+ import { generateId } from './session';
5
+ import WaitUntilHandler from './_waituntil';
6
+ import { registerServices, createServices } from './_services';
7
+ import { getAgentAsyncLocalStorage } from './_context';
8
+ import { getLogger, getTracer, setGlobalLogger, setGlobalTracer } from './_server';
9
+ import { getAppState } from './app';
10
+ import { getThreadProvider, getSessionProvider, getSessionEventProvider } from './_services';
11
+ import * as runtimeConfig from './_config';
12
+ /**
13
+ * Flag to track if standalone initialization has already been performed.
14
+ * Prevents duplicate initialization across multiple createAgentContext() calls.
15
+ */
16
+ let standaloneInitialized = false;
17
+ /**
18
+ * Create a minimal console-based logger for standalone mode.
19
+ * This logger outputs to console without OpenTelemetry integration.
20
+ */
21
+ function createStandaloneLogger() {
22
+ const logLevel = (process.env.AGENTUITY_LOG_LEVEL || 'info');
23
+ const levels = ['trace', 'debug', 'info', 'warn', 'error'];
24
+ const currentLevelIndex = levels.indexOf(logLevel);
25
+ const shouldLog = (level) => levels.indexOf(level) >= currentLevelIndex;
26
+ const logger = {
27
+ trace: (message, ...args) => {
28
+ if (shouldLog('trace'))
29
+ console.debug('[TRACE]', message, ...args);
30
+ },
31
+ debug: (message, ...args) => {
32
+ if (shouldLog('debug'))
33
+ console.debug('[DEBUG]', message, ...args);
34
+ },
35
+ info: (message, ...args) => {
36
+ if (shouldLog('info'))
37
+ console.info('[INFO]', message, ...args);
38
+ },
39
+ warn: (message, ...args) => {
40
+ if (shouldLog('warn'))
41
+ console.warn('[WARN]', message, ...args);
42
+ },
43
+ error: (message, ...args) => {
44
+ if (shouldLog('error'))
45
+ console.error('[ERROR]', message, ...args);
46
+ },
47
+ fatal: (message, ...args) => {
48
+ console.error('[FATAL]', message, ...args);
49
+ process.exit(1);
50
+ },
51
+ child: () => logger,
52
+ };
53
+ return logger;
54
+ }
55
+ /**
56
+ * Initialize standalone runtime globals.
57
+ * This sets up minimal logger, tracer, and services for standalone execution.
58
+ * Called automatically by createAgentContext() when not running inside agent runtime.
59
+ */
60
+ function initializeStandaloneRuntime() {
61
+ if (standaloneInitialized) {
62
+ return;
63
+ }
64
+ const logger = createStandaloneLogger();
65
+ const tracer = trace.getTracer('standalone-agent');
66
+ // Set global state
67
+ setGlobalLogger(logger);
68
+ setGlobalTracer(tracer);
69
+ // Set minimal app state if not already set
70
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
71
+ if (!globalThis.__AGENTUITY_APP_STATE__) {
72
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
+ globalThis.__AGENTUITY_APP_STATE__ = {};
74
+ }
75
+ // Initialize services (will use local services since not authenticated)
76
+ const serverUrl = `http://127.0.0.1:${process.env.PORT || '3500'}`;
77
+ createServices(logger, undefined, serverUrl);
78
+ standaloneInitialized = true;
79
+ logger.debug('Standalone runtime initialized');
80
+ }
81
+ /**
82
+ * Standalone agent context for executing agents outside of HTTP requests.
83
+ *
84
+ * This context provides the same infrastructure as HTTP request contexts:
85
+ * - OpenTelemetry tracing with proper span hierarchy
86
+ * - Session and thread management (save/restore)
87
+ * - Background task handling (waitUntil)
88
+ * - Session event tracking (start/complete)
89
+ * - Access to all services (kv, stream, vector)
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * import { createAgentContext } from '@agentuity/runtime';
94
+ * import myAgent from './agents/my-agent';
95
+ *
96
+ * // Simple usage:
97
+ * const ctx = createAgentContext();
98
+ * const result = await ctx.invoke(() => myAgent.run(input));
99
+ *
100
+ * // With custom session tracking:
101
+ * const ctx = createAgentContext({
102
+ * sessionId: discordMessage.id,
103
+ * trigger: 'discord'
104
+ * });
105
+ * const result = await ctx.invoke(() => myAgent.run(input));
106
+ *
107
+ * // Reuse context for multiple agents:
108
+ * const ctx = createAgentContext();
109
+ * const result1 = await ctx.invoke(() => agent1.run(input1));
110
+ * const result2 = await ctx.invoke(() => agent2.run(result1));
111
+ * ```
112
+ */
113
+ export class StandaloneAgentContext {
114
+ // Immutable context properties (safe for concurrent access)
115
+ agent = {};
116
+ logger;
117
+ tracer;
118
+ kv;
119
+ stream;
120
+ vector;
121
+ sandbox;
122
+ config;
123
+ app;
124
+ current;
125
+ [AGENT_RUNTIME];
126
+ // Note: The following are mutable and will be set per-invocation via AsyncLocalStorage
127
+ // They exist on the interface for compatibility but are overwritten during invoke()
128
+ sessionId;
129
+ state;
130
+ session;
131
+ thread;
132
+ auth;
133
+ [AGENT_IDS];
134
+ // Immutable options stored from constructor
135
+ parentContext;
136
+ trigger;
137
+ initialSessionId;
138
+ constructor(options) {
139
+ // Auto-initialize if not inside agent runtime and globals are not set
140
+ let logger = getLogger();
141
+ let tracer = getTracer();
142
+ let app = getAppState();
143
+ if (!logger || !tracer) {
144
+ // Check if we're inside the agent runtime (dev server or cloud)
145
+ if (isInsideAgentRuntime()) {
146
+ // Inside runtime but globals not set - this is an error
147
+ throw new Error('Global state not initialized. This should not happen inside the agent runtime. ' +
148
+ 'Please report this issue.');
149
+ }
150
+ // Not inside runtime - auto-initialize for standalone use
151
+ initializeStandaloneRuntime();
152
+ // Re-fetch globals after initialization
153
+ logger = getLogger();
154
+ tracer = getTracer();
155
+ app = getAppState();
156
+ }
157
+ this.logger = logger;
158
+ this.tracer = tracer;
159
+ this.app = app;
160
+ this.config = {};
161
+ this.state = new Map();
162
+ this.parentContext = options?.parentContext ?? context.active();
163
+ this.trigger = options?.trigger ?? 'manual';
164
+ this.initialSessionId = options?.sessionId;
165
+ // Session ID will be set properly in invoke() after span is created
166
+ this.sessionId = options?.sessionId ?? 'pending';
167
+ // Thread and session will be restored in invoke()
168
+ this.thread =
169
+ options?.thread ??
170
+ {
171
+ id: 'pending',
172
+ state: {
173
+ loaded: false,
174
+ dirty: false,
175
+ get: async () => undefined,
176
+ set: async () => { },
177
+ has: async () => false,
178
+ delete: async () => { },
179
+ clear: async () => { },
180
+ entries: async () => [],
181
+ keys: async () => [],
182
+ values: async () => [],
183
+ size: async () => 0,
184
+ push: async () => { },
185
+ },
186
+ getMetadata: async () => ({}),
187
+ setMetadata: async () => { },
188
+ addEventListener: () => { },
189
+ removeEventListener: () => { },
190
+ destroy: async () => { },
191
+ empty: async () => true,
192
+ };
193
+ this.session =
194
+ options?.session ??
195
+ {
196
+ id: 'pending',
197
+ thread: this.thread,
198
+ state: new Map(),
199
+ metadata: {},
200
+ addEventListener: () => { },
201
+ removeEventListener: () => { },
202
+ serializeUserData: () => undefined,
203
+ };
204
+ this.auth = null;
205
+ // Create isolated runtime state
206
+ this[AGENT_RUNTIME] = {
207
+ agents: new Map(),
208
+ agentConfigs: new Map(),
209
+ agentEventListeners: new WeakMap(),
210
+ };
211
+ // Register services (kv, stream, vector)
212
+ registerServices(this, true); // true = populate agents registry
213
+ }
214
+ waitUntil(_callback) {
215
+ // This will be called from within invoke() where waitUntilHandler is in scope
216
+ // We need to access the per-call waitUntilHandler from the current invocation
217
+ // This is handled by updating the context during invoke() via AsyncLocalStorage
218
+ throw new Error('waitUntil must be called from within invoke() execution context');
219
+ }
220
+ /**
221
+ * Execute a function within this agent context.
222
+ *
223
+ * This method:
224
+ * 1. Creates an OpenTelemetry span for the invocation
225
+ * 2. Restores/creates session and thread
226
+ * 3. Sends session start event
227
+ * 4. Executes the function within AsyncLocalStorage context
228
+ * 5. Waits for background tasks (waitUntil)
229
+ * 6. Saves session and thread
230
+ * 7. Sends session complete event
231
+ *
232
+ * @param fn - Function to execute (typically () => agent.run(input))
233
+ * @param options - Optional configuration for the invocation
234
+ * @returns Promise that resolves to the function's return value
235
+ *
236
+ * @example
237
+ * ```typescript
238
+ * const result = await ctx.invoke(() => myAgent.run({ userId: '123' }));
239
+ * ```
240
+ *
241
+ * @example
242
+ * ```typescript
243
+ * // Multiple agents in sequence:
244
+ * const result = await ctx.invoke(async () => {
245
+ * const step1 = await agent1.run(input);
246
+ * return agent2.run(step1);
247
+ * });
248
+ * ```
249
+ */
250
+ async invoke(fn, options) {
251
+ const threadProvider = getThreadProvider();
252
+ const sessionProvider = getSessionProvider();
253
+ const sessionEventProvider = getSessionEventProvider();
254
+ const storage = getAgentAsyncLocalStorage();
255
+ // Create per-invocation state (prevents race conditions on concurrent calls)
256
+ const waitUntilHandler = new WaitUntilHandler(this.tracer);
257
+ const agentIds = new Set();
258
+ let invocationSessionId = this.initialSessionId ?? 'pending';
259
+ let invocationThread;
260
+ let invocationSession;
261
+ const invocationState = new Map();
262
+ // Create a per-call context that inherits from this but has isolated mutable state
263
+ const callContext = Object.create(this);
264
+ callContext.sessionId = invocationSessionId;
265
+ callContext.state = invocationState;
266
+ callContext[AGENT_IDS] = agentIds;
267
+ callContext.waitUntil = (callback) => {
268
+ waitUntilHandler.waitUntil(callback);
269
+ };
270
+ // Execute within parent context (for distributed tracing)
271
+ return await context.with(this.parentContext, async () => {
272
+ // Create a span for this invocation (similar to otelMiddleware's HTTP span)
273
+ return await trace.getTracer('standalone-agent').startActiveSpan(options?.spanName ?? 'agent-invocation', {
274
+ kind: SpanKind.INTERNAL, // Not HTTP, but internal invocation
275
+ attributes: {
276
+ trigger: this.trigger,
277
+ },
278
+ }, async (span) => {
279
+ const sctx = span.spanContext();
280
+ // Generate sessionId from traceId if not provided
281
+ invocationSessionId =
282
+ this.initialSessionId ??
283
+ (sctx?.traceId ? `sess_${sctx.traceId}` : generateId('sess'));
284
+ callContext.sessionId = invocationSessionId;
285
+ // Add to tracestate (like otelMiddleware does)
286
+ // Note: SpanContext.traceState is readonly, so we update it by setting the span with a new context
287
+ let traceState = sctx.traceState ?? new TraceState();
288
+ const projectId = runtimeConfig.getProjectId();
289
+ const orgId = runtimeConfig.getOrganizationId();
290
+ const deploymentId = runtimeConfig.getDeploymentId();
291
+ const isDevMode = runtimeConfig.isDevMode();
292
+ if (projectId) {
293
+ traceState = traceState.set('pid', projectId);
294
+ }
295
+ if (orgId) {
296
+ traceState = traceState.set('oid', orgId);
297
+ }
298
+ if (isDevMode) {
299
+ traceState = traceState.set('d', '1');
300
+ }
301
+ // Update the active context with the new trace state
302
+ // We do this by setting the span in the context with updated trace state
303
+ // Note: This creates a new context but we don't need to use it directly
304
+ // as the span already has the trace state we need for propagation
305
+ trace.setSpan(context.active(), trace.wrapSpanContext({
306
+ ...sctx,
307
+ traceState,
308
+ }));
309
+ // Restore thread and session (like otelMiddleware does)
310
+ // For standalone contexts, we create a simple thread/session if not provided
311
+ // The threadProvider.restore expects a Hono context with cookie/header access
312
+ // For standalone contexts without HTTP, we just create a new thread
313
+ const { DefaultThread, generateId: genId } = await import('./session');
314
+ const threadId = genId('thrd');
315
+ // Create a no-op restore function for standalone contexts
316
+ const restoreFn = async () => ({ state: new Map(), metadata: {} });
317
+ invocationThread = new DefaultThread(threadProvider, threadId, restoreFn);
318
+ callContext.thread = invocationThread;
319
+ invocationSession = await sessionProvider.restore(invocationThread, invocationSessionId);
320
+ callContext.session = invocationSession;
321
+ // Send session start event (if configured)
322
+ const shouldSendSession = !!(orgId && projectId);
323
+ let canSendSessionEvents = true;
324
+ if (shouldSendSession) {
325
+ await sessionEventProvider
326
+ .start({
327
+ id: invocationSessionId,
328
+ orgId,
329
+ projectId,
330
+ threadId: invocationThread.id,
331
+ routeId: 'standalone', // No route for standalone contexts
332
+ deploymentId,
333
+ devmode: isDevMode,
334
+ environment: runtimeConfig.getEnvironment(),
335
+ method: 'STANDALONE',
336
+ url: '',
337
+ trigger: this.trigger,
338
+ metadata: Object.keys(invocationSession.metadata).length > 0
339
+ ? invocationSession.metadata
340
+ : undefined,
341
+ })
342
+ .catch((ex) => {
343
+ canSendSessionEvents = false;
344
+ this.logger.error('error sending session start event: %s', ex);
345
+ });
346
+ }
347
+ let hasPendingWaits = false;
348
+ try {
349
+ // Execute function within AsyncLocalStorage context with per-call context
350
+ const result = await storage.run(callContext, fn);
351
+ // Wait for background tasks (like otelMiddleware does)
352
+ if (waitUntilHandler.hasPending()) {
353
+ hasPendingWaits = true;
354
+ waitUntilHandler
355
+ .waitUntilAll(this.logger, invocationSessionId)
356
+ .then(async () => {
357
+ this.logger.debug('wait until finished for session %s', invocationSessionId);
358
+ await sessionProvider.save(invocationSession);
359
+ await threadProvider.save(invocationThread);
360
+ span.setStatus({ code: SpanStatusCode.OK });
361
+ if (shouldSendSession && canSendSessionEvents) {
362
+ const userData = invocationSession.serializeUserData();
363
+ sessionEventProvider
364
+ .complete({
365
+ id: invocationSessionId,
366
+ threadId: (await invocationThread.empty())
367
+ ? null
368
+ : invocationThread.id,
369
+ statusCode: 200, // Success
370
+ agentIds: Array.from(agentIds),
371
+ userData,
372
+ metadata: Object.keys(invocationSession.metadata).length > 0
373
+ ? invocationSession.metadata
374
+ : undefined,
375
+ })
376
+ .then(() => { })
377
+ .catch((ex) => this.logger.error(ex));
378
+ }
379
+ })
380
+ .catch(async (ex) => {
381
+ this.logger.error('wait until errored for session %s. %s', invocationSessionId, ex);
382
+ if (ex instanceof Error) {
383
+ span.recordException(ex);
384
+ }
385
+ const message = ex.message ?? String(ex);
386
+ span.setStatus({
387
+ code: SpanStatusCode.ERROR,
388
+ message,
389
+ });
390
+ this.logger.error(message);
391
+ if (shouldSendSession && canSendSessionEvents) {
392
+ const userData = invocationSession.serializeUserData();
393
+ sessionEventProvider
394
+ .complete({
395
+ id: invocationSessionId,
396
+ threadId: (await invocationThread.empty())
397
+ ? null
398
+ : invocationThread.id,
399
+ statusCode: 500, // Error
400
+ error: message,
401
+ agentIds: Array.from(agentIds),
402
+ userData,
403
+ metadata: Object.keys(invocationSession.metadata).length > 0
404
+ ? invocationSession.metadata
405
+ : undefined,
406
+ })
407
+ .then(() => { })
408
+ .catch((ex) => this.logger.error(ex));
409
+ }
410
+ })
411
+ .finally(() => {
412
+ span.end();
413
+ });
414
+ }
415
+ else {
416
+ span.setStatus({ code: SpanStatusCode.OK });
417
+ if (shouldSendSession && canSendSessionEvents) {
418
+ const userData = invocationSession.serializeUserData();
419
+ sessionEventProvider
420
+ .complete({
421
+ id: invocationSessionId,
422
+ threadId: (await invocationThread.empty())
423
+ ? null
424
+ : invocationThread.id,
425
+ statusCode: 200,
426
+ agentIds: Array.from(agentIds),
427
+ userData,
428
+ metadata: Object.keys(invocationSession.metadata).length > 0
429
+ ? invocationSession.metadata
430
+ : undefined,
431
+ })
432
+ .then(() => { })
433
+ .catch((ex) => this.logger.error(ex));
434
+ }
435
+ }
436
+ return result;
437
+ }
438
+ catch (ex) {
439
+ if (ex instanceof Error) {
440
+ span.recordException(ex);
441
+ }
442
+ const message = ex.message ?? String(ex);
443
+ span.setStatus({
444
+ code: SpanStatusCode.ERROR,
445
+ message,
446
+ });
447
+ this.logger.error(message);
448
+ if (shouldSendSession && canSendSessionEvents) {
449
+ const userData = invocationSession.serializeUserData();
450
+ sessionEventProvider
451
+ .complete({
452
+ id: invocationSessionId,
453
+ threadId: (await invocationThread.empty()) ? null : invocationThread.id,
454
+ statusCode: 500,
455
+ error: message,
456
+ agentIds: Array.from(agentIds),
457
+ userData,
458
+ metadata: Object.keys(invocationSession.metadata).length > 0
459
+ ? invocationSession.metadata
460
+ : undefined,
461
+ })
462
+ .then(() => { })
463
+ .catch((ex) => this.logger.error(ex));
464
+ }
465
+ throw ex;
466
+ }
467
+ finally {
468
+ if (!hasPendingWaits) {
469
+ try {
470
+ await sessionProvider.save(invocationSession);
471
+ await threadProvider.save(invocationThread);
472
+ }
473
+ finally {
474
+ span.end();
475
+ }
476
+ }
477
+ }
478
+ });
479
+ });
480
+ }
481
+ /**
482
+ * Execute an agent with the given input within this context.
483
+ *
484
+ * This is a convenience method that wraps `invoke()` for cleaner syntax
485
+ * when running a single agent.
486
+ *
487
+ * @param agent - The agent to execute (must have a `run` method)
488
+ * @param input - Input to pass to the agent (if agent requires input)
489
+ * @returns Promise that resolves to the agent's output
490
+ *
491
+ * @example
492
+ * ```typescript
493
+ * import { createAgentContext } from '@agentuity/runtime';
494
+ * import myAgent from './agents/my-agent';
495
+ *
496
+ * const ctx = createAgentContext();
497
+ * const result = await ctx.run(myAgent, { name: 'World' });
498
+ * ```
499
+ *
500
+ * @example
501
+ * ```typescript
502
+ * // Agent without input
503
+ * const result = await ctx.run(statusAgent);
504
+ * ```
505
+ *
506
+ * @example
507
+ * ```typescript
508
+ * // Multiple agents in sequence
509
+ * const ctx = createAgentContext();
510
+ * const step1 = await ctx.run(preprocessAgent, rawData);
511
+ * const step2 = await ctx.run(processAgent, step1);
512
+ * const result = await ctx.run(postprocessAgent, step2);
513
+ * ```
514
+ */
515
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
516
+ async run(agent, input) {
517
+ // Handle both agents with and without input
518
+ // The agent.run type varies based on whether input schema is defined
519
+ const runFn = agent.run;
520
+ return this.invoke(() => runFn(input));
521
+ }
522
+ }
523
+ /**
524
+ * Create a standalone agent context for executing agents outside of HTTP requests.
525
+ *
526
+ * This is useful for Discord bots, cron jobs, CLI scripts, sandboxes, or any scenario
527
+ * where you need to run agents but don't have an HTTP request context.
528
+ *
529
+ * **Auto-initialization**: When running outside of the Agentuity runtime (dev server or cloud),
530
+ * this function automatically initializes minimal runtime globals. No manual setup required.
531
+ *
532
+ * @param options - Optional configuration for the context
533
+ * @returns A StandaloneAgentContext instance
534
+ *
535
+ * @example
536
+ * ```typescript
537
+ * import { createAgentContext } from '@agentuity/runtime';
538
+ * import myAgent from './agents/my-agent';
539
+ *
540
+ * // Simple usage with ctx.run() (recommended):
541
+ * const ctx = createAgentContext();
542
+ * const result = await ctx.run(myAgent, { name: 'World' });
543
+ *
544
+ * // Discord bot example:
545
+ * client.on('messageCreate', async (message) => {
546
+ * const ctx = createAgentContext({
547
+ * sessionId: message.id,
548
+ * trigger: 'discord'
549
+ * });
550
+ * const response = await ctx.run(chatAgent, { message: message.content });
551
+ * await message.reply(response.text);
552
+ * });
553
+ *
554
+ * // Cron job example:
555
+ * cron.schedule('0 * * * *', async () => {
556
+ * const ctx = createAgentContext({ trigger: 'cron' });
557
+ * await ctx.run(cleanupAgent);
558
+ * });
559
+ *
560
+ * // Multiple agents in sequence:
561
+ * const ctx = createAgentContext();
562
+ * const step1 = await ctx.run(preprocessAgent, rawData);
563
+ * const result = await ctx.run(processAgent, step1);
564
+ * ```
565
+ */
566
+ export function createAgentContext(options) {
567
+ return new StandaloneAgentContext(options);
568
+ }
569
+ //# sourceMappingURL=_standalone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_standalone.js","sourceRoot":"","sources":["../src/_standalone.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { Context } from '@opentelemetry/api';
2
+ import type { Span } from '@opentelemetry/sdk-trace-base';
3
+ import type { SpanProcessor } from '@opentelemetry/sdk-trace-base';
4
+ export declare const TOKENS_HEADER = "x-agentuity-tokens";
5
+ export declare const DURATION_HEADER = "x-agentuity-duration";
6
+ export declare class TokenSpanProcessor implements SpanProcessor {
7
+ onStart(_span: Span, _context: Context): void;
8
+ onEnd(span: Span): void;
9
+ forceFlush(): Promise<void>;
10
+ shutdown(): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=_tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_tokens.d.ts","sourceRoot":"","sources":["../src/_tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAInE,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAClD,eAAO,MAAM,eAAe,yBAAyB,CAAC;AA6CtD,qBAAa,kBAAmB,YAAW,aAAa;IACvD,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO;IAItC,KAAK,CAAC,IAAI,EAAE,IAAI;IA+ChB,UAAU;IAIV,QAAQ;CAGR"}