@agentuity/runtime 0.1.12 → 0.1.14

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 (272) hide show
  1. package/package.json +8 -8
  2. package/src/_config.ts +13 -0
  3. package/src/_standalone.ts +167 -19
  4. package/src/index.ts +1 -0
  5. package/dist/_config.d.ts +0 -90
  6. package/dist/_config.d.ts.map +0 -1
  7. package/dist/_config.js +0 -135
  8. package/dist/_config.js.map +0 -1
  9. package/dist/_context.d.ts +0 -76
  10. package/dist/_context.d.ts.map +0 -1
  11. package/dist/_context.js +0 -147
  12. package/dist/_context.js.map +0 -1
  13. package/dist/_events.d.ts +0 -64
  14. package/dist/_events.d.ts.map +0 -1
  15. package/dist/_events.js +0 -92
  16. package/dist/_events.js.map +0 -1
  17. package/dist/_idle.d.ts +0 -7
  18. package/dist/_idle.d.ts.map +0 -1
  19. package/dist/_idle.js +0 -10
  20. package/dist/_idle.js.map +0 -1
  21. package/dist/_metadata.d.ts +0 -117
  22. package/dist/_metadata.d.ts.map +0 -1
  23. package/dist/_metadata.js +0 -246
  24. package/dist/_metadata.js.map +0 -1
  25. package/dist/_process-protection.d.ts +0 -25
  26. package/dist/_process-protection.d.ts.map +0 -1
  27. package/dist/_process-protection.js +0 -65
  28. package/dist/_process-protection.js.map +0 -1
  29. package/dist/_server.d.ts +0 -46
  30. package/dist/_server.d.ts.map +0 -1
  31. package/dist/_server.js +0 -85
  32. package/dist/_server.js.map +0 -1
  33. package/dist/_services.d.ts +0 -21
  34. package/dist/_services.d.ts.map +0 -1
  35. package/dist/_services.js +0 -248
  36. package/dist/_services.js.map +0 -1
  37. package/dist/_standalone.d.ts +0 -168
  38. package/dist/_standalone.d.ts.map +0 -1
  39. package/dist/_standalone.js +0 -441
  40. package/dist/_standalone.js.map +0 -1
  41. package/dist/_tokens.d.ts +0 -12
  42. package/dist/_tokens.d.ts.map +0 -1
  43. package/dist/_tokens.js +0 -96
  44. package/dist/_tokens.js.map +0 -1
  45. package/dist/_util.d.ts +0 -16
  46. package/dist/_util.d.ts.map +0 -1
  47. package/dist/_util.js +0 -54
  48. package/dist/_util.js.map +0 -1
  49. package/dist/_validation.d.ts +0 -89
  50. package/dist/_validation.d.ts.map +0 -1
  51. package/dist/_validation.js +0 -29
  52. package/dist/_validation.js.map +0 -1
  53. package/dist/_waituntil.d.ts +0 -18
  54. package/dist/_waituntil.d.ts.map +0 -1
  55. package/dist/_waituntil.js +0 -97
  56. package/dist/_waituntil.js.map +0 -1
  57. package/dist/agent.d.ts +0 -1210
  58. package/dist/agent.d.ts.map +0 -1
  59. package/dist/agent.js +0 -903
  60. package/dist/agent.js.map +0 -1
  61. package/dist/app.d.ts +0 -322
  62. package/dist/app.d.ts.map +0 -1
  63. package/dist/app.js +0 -160
  64. package/dist/app.js.map +0 -1
  65. package/dist/bun-s3-patch.d.ts +0 -37
  66. package/dist/bun-s3-patch.d.ts.map +0 -1
  67. package/dist/bun-s3-patch.js +0 -139
  68. package/dist/bun-s3-patch.js.map +0 -1
  69. package/dist/cors.d.ts +0 -42
  70. package/dist/cors.d.ts.map +0 -1
  71. package/dist/cors.js +0 -117
  72. package/dist/cors.js.map +0 -1
  73. package/dist/devmode.d.ts +0 -3
  74. package/dist/devmode.d.ts.map +0 -1
  75. package/dist/devmode.js +0 -167
  76. package/dist/devmode.js.map +0 -1
  77. package/dist/eval.d.ts +0 -91
  78. package/dist/eval.d.ts.map +0 -1
  79. package/dist/eval.js +0 -16
  80. package/dist/eval.js.map +0 -1
  81. package/dist/handlers/cron.d.ts +0 -47
  82. package/dist/handlers/cron.d.ts.map +0 -1
  83. package/dist/handlers/cron.js +0 -49
  84. package/dist/handlers/cron.js.map +0 -1
  85. package/dist/handlers/index.d.ts +0 -5
  86. package/dist/handlers/index.d.ts.map +0 -1
  87. package/dist/handlers/index.js +0 -5
  88. package/dist/handlers/index.js.map +0 -1
  89. package/dist/handlers/sse.d.ts +0 -91
  90. package/dist/handlers/sse.d.ts.map +0 -1
  91. package/dist/handlers/sse.js +0 -213
  92. package/dist/handlers/sse.js.map +0 -1
  93. package/dist/handlers/stream.d.ts +0 -52
  94. package/dist/handlers/stream.d.ts.map +0 -1
  95. package/dist/handlers/stream.js +0 -116
  96. package/dist/handlers/stream.js.map +0 -1
  97. package/dist/handlers/websocket.d.ts +0 -49
  98. package/dist/handlers/websocket.d.ts.map +0 -1
  99. package/dist/handlers/websocket.js +0 -143
  100. package/dist/handlers/websocket.js.map +0 -1
  101. package/dist/index.d.ts +0 -71
  102. package/dist/index.d.ts.map +0 -1
  103. package/dist/index.js +0 -58
  104. package/dist/index.js.map +0 -1
  105. package/dist/logger/console.d.ts +0 -70
  106. package/dist/logger/console.d.ts.map +0 -1
  107. package/dist/logger/console.js +0 -274
  108. package/dist/logger/console.js.map +0 -1
  109. package/dist/logger/index.d.ts +0 -3
  110. package/dist/logger/index.d.ts.map +0 -1
  111. package/dist/logger/index.js +0 -3
  112. package/dist/logger/index.js.map +0 -1
  113. package/dist/logger/internal.d.ts +0 -79
  114. package/dist/logger/internal.d.ts.map +0 -1
  115. package/dist/logger/internal.js +0 -133
  116. package/dist/logger/internal.js.map +0 -1
  117. package/dist/logger/logger.d.ts +0 -41
  118. package/dist/logger/logger.d.ts.map +0 -1
  119. package/dist/logger/logger.js +0 -2
  120. package/dist/logger/logger.js.map +0 -1
  121. package/dist/logger/user.d.ts +0 -8
  122. package/dist/logger/user.d.ts.map +0 -1
  123. package/dist/logger/user.js +0 -7
  124. package/dist/logger/user.js.map +0 -1
  125. package/dist/logger/util.d.ts +0 -11
  126. package/dist/logger/util.d.ts.map +0 -1
  127. package/dist/logger/util.js +0 -77
  128. package/dist/logger/util.js.map +0 -1
  129. package/dist/middleware.d.ts +0 -112
  130. package/dist/middleware.d.ts.map +0 -1
  131. package/dist/middleware.js +0 -507
  132. package/dist/middleware.js.map +0 -1
  133. package/dist/otel/config.d.ts +0 -19
  134. package/dist/otel/config.d.ts.map +0 -1
  135. package/dist/otel/config.js +0 -26
  136. package/dist/otel/config.js.map +0 -1
  137. package/dist/otel/console.d.ts +0 -33
  138. package/dist/otel/console.d.ts.map +0 -1
  139. package/dist/otel/console.js +0 -86
  140. package/dist/otel/console.js.map +0 -1
  141. package/dist/otel/exporters/index.d.ts +0 -4
  142. package/dist/otel/exporters/index.d.ts.map +0 -1
  143. package/dist/otel/exporters/index.js +0 -4
  144. package/dist/otel/exporters/index.js.map +0 -1
  145. package/dist/otel/exporters/jsonl-log-exporter.d.ts +0 -36
  146. package/dist/otel/exporters/jsonl-log-exporter.d.ts.map +0 -1
  147. package/dist/otel/exporters/jsonl-log-exporter.js +0 -103
  148. package/dist/otel/exporters/jsonl-log-exporter.js.map +0 -1
  149. package/dist/otel/exporters/jsonl-metric-exporter.d.ts +0 -40
  150. package/dist/otel/exporters/jsonl-metric-exporter.d.ts.map +0 -1
  151. package/dist/otel/exporters/jsonl-metric-exporter.js +0 -104
  152. package/dist/otel/exporters/jsonl-metric-exporter.js.map +0 -1
  153. package/dist/otel/exporters/jsonl-trace-exporter.d.ts +0 -36
  154. package/dist/otel/exporters/jsonl-trace-exporter.d.ts.map +0 -1
  155. package/dist/otel/exporters/jsonl-trace-exporter.js +0 -111
  156. package/dist/otel/exporters/jsonl-trace-exporter.js.map +0 -1
  157. package/dist/otel/fetch.d.ts +0 -12
  158. package/dist/otel/fetch.d.ts.map +0 -1
  159. package/dist/otel/fetch.js +0 -82
  160. package/dist/otel/fetch.js.map +0 -1
  161. package/dist/otel/http.d.ts +0 -16
  162. package/dist/otel/http.d.ts.map +0 -1
  163. package/dist/otel/http.js +0 -44
  164. package/dist/otel/http.js.map +0 -1
  165. package/dist/otel/logger.d.ts +0 -37
  166. package/dist/otel/logger.d.ts.map +0 -1
  167. package/dist/otel/logger.js +0 -268
  168. package/dist/otel/logger.js.map +0 -1
  169. package/dist/otel/otel.d.ts +0 -65
  170. package/dist/otel/otel.d.ts.map +0 -1
  171. package/dist/otel/otel.js +0 -261
  172. package/dist/otel/otel.js.map +0 -1
  173. package/dist/router.d.ts +0 -100
  174. package/dist/router.d.ts.map +0 -1
  175. package/dist/router.js +0 -163
  176. package/dist/router.js.map +0 -1
  177. package/dist/services/evalrun/composite.d.ts +0 -21
  178. package/dist/services/evalrun/composite.d.ts.map +0 -1
  179. package/dist/services/evalrun/composite.js +0 -26
  180. package/dist/services/evalrun/composite.js.map +0 -1
  181. package/dist/services/evalrun/http.d.ts +0 -24
  182. package/dist/services/evalrun/http.d.ts.map +0 -1
  183. package/dist/services/evalrun/http.js +0 -86
  184. package/dist/services/evalrun/http.js.map +0 -1
  185. package/dist/services/evalrun/index.d.ts +0 -5
  186. package/dist/services/evalrun/index.d.ts.map +0 -1
  187. package/dist/services/evalrun/index.js +0 -5
  188. package/dist/services/evalrun/index.js.map +0 -1
  189. package/dist/services/evalrun/json.d.ts +0 -21
  190. package/dist/services/evalrun/json.d.ts.map +0 -1
  191. package/dist/services/evalrun/json.js +0 -38
  192. package/dist/services/evalrun/json.js.map +0 -1
  193. package/dist/services/evalrun/local.d.ts +0 -19
  194. package/dist/services/evalrun/local.d.ts.map +0 -1
  195. package/dist/services/evalrun/local.js +0 -22
  196. package/dist/services/evalrun/local.js.map +0 -1
  197. package/dist/services/local/_db.d.ts +0 -4
  198. package/dist/services/local/_db.d.ts.map +0 -1
  199. package/dist/services/local/_db.js +0 -123
  200. package/dist/services/local/_db.js.map +0 -1
  201. package/dist/services/local/_router.d.ts +0 -3
  202. package/dist/services/local/_router.d.ts.map +0 -1
  203. package/dist/services/local/_router.js +0 -28
  204. package/dist/services/local/_router.js.map +0 -1
  205. package/dist/services/local/_util.d.ts +0 -18
  206. package/dist/services/local/_util.d.ts.map +0 -1
  207. package/dist/services/local/_util.js +0 -44
  208. package/dist/services/local/_util.js.map +0 -1
  209. package/dist/services/local/index.d.ts +0 -7
  210. package/dist/services/local/index.d.ts.map +0 -1
  211. package/dist/services/local/index.js +0 -7
  212. package/dist/services/local/index.js.map +0 -1
  213. package/dist/services/local/keyvalue.d.ts +0 -17
  214. package/dist/services/local/keyvalue.d.ts.map +0 -1
  215. package/dist/services/local/keyvalue.js +0 -125
  216. package/dist/services/local/keyvalue.js.map +0 -1
  217. package/dist/services/local/stream.d.ts +0 -12
  218. package/dist/services/local/stream.d.ts.map +0 -1
  219. package/dist/services/local/stream.js +0 -262
  220. package/dist/services/local/stream.js.map +0 -1
  221. package/dist/services/local/vector.d.ts +0 -17
  222. package/dist/services/local/vector.d.ts.map +0 -1
  223. package/dist/services/local/vector.js +0 -303
  224. package/dist/services/local/vector.js.map +0 -1
  225. package/dist/services/sandbox/http.d.ts +0 -13
  226. package/dist/services/sandbox/http.d.ts.map +0 -1
  227. package/dist/services/sandbox/http.js +0 -130
  228. package/dist/services/sandbox/http.js.map +0 -1
  229. package/dist/services/sandbox/index.d.ts +0 -2
  230. package/dist/services/sandbox/index.d.ts.map +0 -1
  231. package/dist/services/sandbox/index.js +0 -2
  232. package/dist/services/sandbox/index.js.map +0 -1
  233. package/dist/services/session/composite.d.ts +0 -21
  234. package/dist/services/session/composite.d.ts.map +0 -1
  235. package/dist/services/session/composite.js +0 -26
  236. package/dist/services/session/composite.js.map +0 -1
  237. package/dist/services/session/http.d.ts +0 -34
  238. package/dist/services/session/http.d.ts.map +0 -1
  239. package/dist/services/session/http.js +0 -80
  240. package/dist/services/session/http.js.map +0 -1
  241. package/dist/services/session/index.d.ts +0 -5
  242. package/dist/services/session/index.d.ts.map +0 -1
  243. package/dist/services/session/index.js +0 -5
  244. package/dist/services/session/index.js.map +0 -1
  245. package/dist/services/session/json.d.ts +0 -22
  246. package/dist/services/session/json.d.ts.map +0 -1
  247. package/dist/services/session/json.js +0 -35
  248. package/dist/services/session/json.js.map +0 -1
  249. package/dist/services/session/local.d.ts +0 -19
  250. package/dist/services/session/local.d.ts.map +0 -1
  251. package/dist/services/session/local.js +0 -23
  252. package/dist/services/session/local.js.map +0 -1
  253. package/dist/services/thread/local.d.ts +0 -20
  254. package/dist/services/thread/local.d.ts.map +0 -1
  255. package/dist/services/thread/local.js +0 -158
  256. package/dist/services/thread/local.js.map +0 -1
  257. package/dist/session.d.ts +0 -734
  258. package/dist/session.d.ts.map +0 -1
  259. package/dist/session.js +0 -1139
  260. package/dist/session.js.map +0 -1
  261. package/dist/validator.d.ts +0 -142
  262. package/dist/validator.d.ts.map +0 -1
  263. package/dist/validator.js +0 -149
  264. package/dist/validator.js.map +0 -1
  265. package/dist/web.d.ts +0 -8
  266. package/dist/web.d.ts.map +0 -1
  267. package/dist/web.js +0 -66
  268. package/dist/web.js.map +0 -1
  269. package/dist/workbench.d.ts +0 -17
  270. package/dist/workbench.d.ts.map +0 -1
  271. package/dist/workbench.js +0 -507
  272. package/dist/workbench.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentuity/runtime",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Agentuity employees and contributors",
6
6
  "type": "module",
@@ -20,17 +20,17 @@
20
20
  ],
21
21
  "scripts": {
22
22
  "clean": "rm -rf dist",
23
- "build": "bunx tsc --build --force",
23
+ "build": "bunx tsc --build",
24
24
  "typecheck": "bunx tsc --noEmit",
25
25
  "typecheck:tests": "bunx tsc --noEmit --project tsconfig.test.json",
26
26
  "prepublishOnly": "bun run clean && bun run build"
27
27
  },
28
28
  "dependencies": {
29
- "@agentuity/auth": "0.1.12",
30
- "@agentuity/core": "0.1.12",
31
- "@agentuity/frontend": "0.1.12",
32
- "@agentuity/schema": "0.1.12",
33
- "@agentuity/server": "0.1.12",
29
+ "@agentuity/auth": "0.1.14",
30
+ "@agentuity/core": "0.1.14",
31
+ "@agentuity/frontend": "0.1.14",
32
+ "@agentuity/schema": "0.1.14",
33
+ "@agentuity/server": "0.1.14",
34
34
  "@opentelemetry/api": "^1.9.0",
35
35
  "@opentelemetry/api-logs": "^0.207.0",
36
36
  "@opentelemetry/auto-instrumentations-node": "^0.66.0",
@@ -52,7 +52,7 @@
52
52
  "zod": "^4.3.5"
53
53
  },
54
54
  "devDependencies": {
55
- "@agentuity/test-utils": "0.1.12",
55
+ "@agentuity/test-utils": "0.1.14",
56
56
  "@types/bun": "latest",
57
57
  "@types/react": "^19.2.2",
58
58
  "@types/react-dom": "^19.2.2",
package/src/_config.ts CHANGED
@@ -148,3 +148,16 @@ export const CURRENT_AGENT = Symbol('CURRENT_AGENT');
148
148
  * @internal
149
149
  */
150
150
  export const AGENT_IDS = Symbol('AGENT_IDS');
151
+
152
+ /**
153
+ * Returns true if running inside the Agentuity agent runtime (dev server or cloud).
154
+ *
155
+ * This is used to determine whether global state (logger, tracer, services) should
156
+ * already be initialized. When running standalone (scripts, Discord bots, cron jobs),
157
+ * this returns false and the runtime will auto-initialize minimal defaults.
158
+ *
159
+ * @returns boolean - true if AGENTUITY_SDK_DEV_MODE=true or AGENTUITY_RUNTIME=yes
160
+ */
161
+ export function isInsideAgentRuntime(): boolean {
162
+ return process.env.AGENTUITY_SDK_DEV_MODE === 'true' || process.env.AGENTUITY_RUNTIME === 'yes';
163
+ }
@@ -5,20 +5,106 @@ import type {
5
5
  StreamStorage,
6
6
  VectorStorage,
7
7
  SandboxService,
8
+ Logger,
8
9
  } from '@agentuity/core';
9
- import type { AgentContext, AgentRegistry, AgentRuntimeState, AgentMetadata } from './agent';
10
- import { AGENT_RUNTIME, AGENT_IDS } from './_config';
11
- import type { Logger } from './logger';
10
+ import type {
11
+ AgentContext,
12
+ AgentRegistry,
13
+ AgentRuntimeState,
14
+ AgentMetadata,
15
+ AgentRunner,
16
+ } from './agent';
17
+ import { AGENT_RUNTIME, AGENT_IDS, isInsideAgentRuntime } from './_config';
12
18
  import type { Thread, Session } from './session';
13
19
  import { generateId } from './session';
14
20
  import WaitUntilHandler from './_waituntil';
15
- import { registerServices } from './_services';
21
+ import { registerServices, createServices } from './_services';
16
22
  import { getAgentAsyncLocalStorage } from './_context';
17
- import { getLogger, getTracer } from './_server';
23
+ import { getLogger, getTracer, setGlobalLogger, setGlobalTracer } from './_server';
18
24
  import { getAppState } from './app';
19
25
  import { getThreadProvider, getSessionProvider, getSessionEventProvider } from './_services';
20
26
  import * as runtimeConfig from './_config';
21
27
 
28
+ /**
29
+ * Flag to track if standalone initialization has already been performed.
30
+ * Prevents duplicate initialization across multiple createAgentContext() calls.
31
+ */
32
+ let standaloneInitialized = false;
33
+
34
+ /**
35
+ * Create a minimal console-based logger for standalone mode.
36
+ * This logger outputs to console without OpenTelemetry integration.
37
+ */
38
+ function createStandaloneLogger(): Logger {
39
+ const logLevel = (process.env.AGENTUITY_LOG_LEVEL || 'info') as
40
+ | 'trace'
41
+ | 'debug'
42
+ | 'info'
43
+ | 'warn'
44
+ | 'error';
45
+ const levels = ['trace', 'debug', 'info', 'warn', 'error'];
46
+ const currentLevelIndex = levels.indexOf(logLevel);
47
+
48
+ const shouldLog = (level: string) => levels.indexOf(level) >= currentLevelIndex;
49
+
50
+ const logger: Logger = {
51
+ trace: (message: unknown, ...args: unknown[]) => {
52
+ if (shouldLog('trace')) console.debug('[TRACE]', message, ...args);
53
+ },
54
+ debug: (message: unknown, ...args: unknown[]) => {
55
+ if (shouldLog('debug')) console.debug('[DEBUG]', message, ...args);
56
+ },
57
+ info: (message: unknown, ...args: unknown[]) => {
58
+ if (shouldLog('info')) console.info('[INFO]', message, ...args);
59
+ },
60
+ warn: (message: unknown, ...args: unknown[]) => {
61
+ if (shouldLog('warn')) console.warn('[WARN]', message, ...args);
62
+ },
63
+ error: (message: unknown, ...args: unknown[]) => {
64
+ if (shouldLog('error')) console.error('[ERROR]', message, ...args);
65
+ },
66
+ fatal: (message: unknown, ...args: unknown[]): never => {
67
+ console.error('[FATAL]', message, ...args);
68
+ process.exit(1);
69
+ },
70
+ child: () => logger,
71
+ };
72
+
73
+ return logger;
74
+ }
75
+
76
+ /**
77
+ * Initialize standalone runtime globals.
78
+ * This sets up minimal logger, tracer, and services for standalone execution.
79
+ * Called automatically by createAgentContext() when not running inside agent runtime.
80
+ */
81
+ function initializeStandaloneRuntime(): void {
82
+ if (standaloneInitialized) {
83
+ return;
84
+ }
85
+
86
+ const logger = createStandaloneLogger();
87
+ const tracer = trace.getTracer('standalone-agent');
88
+
89
+ // Set global state
90
+ setGlobalLogger(logger);
91
+ setGlobalTracer(tracer);
92
+
93
+ // Set minimal app state if not already set
94
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
95
+ if (!(globalThis as any).__AGENTUITY_APP_STATE__) {
96
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
97
+ (globalThis as any).__AGENTUITY_APP_STATE__ = {};
98
+ }
99
+
100
+ // Initialize services (will use local services since not authenticated)
101
+ const serverUrl = `http://127.0.0.1:${process.env.PORT || '3500'}`;
102
+ createServices(logger, undefined, serverUrl);
103
+
104
+ standaloneInitialized = true;
105
+ logger.debug('Standalone runtime initialized');
106
+ }
107
+
22
108
  /**
23
109
  * Options for creating a standalone agent context.
24
110
  *
@@ -123,14 +209,28 @@ export class StandaloneAgentContext<
123
209
  private readonly initialSessionId?: string;
124
210
 
125
211
  constructor(options?: StandaloneContextOptions) {
126
- const logger = getLogger();
127
- const tracer = getTracer();
128
- const app = getAppState();
212
+ // Auto-initialize if not inside agent runtime and globals are not set
213
+ let logger = getLogger();
214
+ let tracer = getTracer();
215
+ let app = getAppState();
129
216
 
130
- if (!logger || !tracer || !app) {
131
- throw new Error(
132
- 'Global state not initialized. Make sure createServer() has been called before createAgentContext().'
133
- );
217
+ if (!logger || !tracer) {
218
+ // Check if we're inside the agent runtime (dev server or cloud)
219
+ if (isInsideAgentRuntime()) {
220
+ // Inside runtime but globals not set - this is an error
221
+ throw new Error(
222
+ 'Global state not initialized. This should not happen inside the agent runtime. ' +
223
+ 'Please report this issue.'
224
+ );
225
+ }
226
+
227
+ // Not inside runtime - auto-initialize for standalone use
228
+ initializeStandaloneRuntime();
229
+
230
+ // Re-fetch globals after initialization
231
+ logger = getLogger()!;
232
+ tracer = getTracer()!;
233
+ app = getAppState();
134
234
  }
135
235
 
136
236
  this.logger = logger;
@@ -501,14 +601,59 @@ export class StandaloneAgentContext<
501
601
  );
502
602
  });
503
603
  }
604
+
605
+ /**
606
+ * Execute an agent with the given input within this context.
607
+ *
608
+ * This is a convenience method that wraps `invoke()` for cleaner syntax
609
+ * when running a single agent.
610
+ *
611
+ * @param agent - The agent to execute (must have a `run` method)
612
+ * @param input - Input to pass to the agent (if agent requires input)
613
+ * @returns Promise that resolves to the agent's output
614
+ *
615
+ * @example
616
+ * ```typescript
617
+ * import { createAgentContext } from '@agentuity/runtime';
618
+ * import myAgent from './agents/my-agent';
619
+ *
620
+ * const ctx = createAgentContext();
621
+ * const result = await ctx.run(myAgent, { name: 'World' });
622
+ * ```
623
+ *
624
+ * @example
625
+ * ```typescript
626
+ * // Agent without input
627
+ * const result = await ctx.run(statusAgent);
628
+ * ```
629
+ *
630
+ * @example
631
+ * ```typescript
632
+ * // Multiple agents in sequence
633
+ * const ctx = createAgentContext();
634
+ * const step1 = await ctx.run(preprocessAgent, rawData);
635
+ * const step2 = await ctx.run(processAgent, step1);
636
+ * const result = await ctx.run(postprocessAgent, step2);
637
+ * ```
638
+ */
639
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
640
+ async run<TOutput>(agent: AgentRunner<any, any, any>, input?: unknown): Promise<TOutput> {
641
+ // Handle both agents with and without input
642
+ // The agent.run type varies based on whether input schema is defined
643
+ const runFn = agent.run as (input?: unknown) => Promise<TOutput>;
644
+ return this.invoke(() => runFn(input));
645
+ }
504
646
  }
505
647
 
506
648
  /**
507
649
  * Create a standalone agent context for executing agents outside of HTTP requests.
508
650
  *
509
- * This is useful for Discord bots, cron jobs, WebSocket callbacks, or any scenario
651
+ * This is useful for Discord bots, cron jobs, CLI scripts, sandboxes, or any scenario
510
652
  * where you need to run agents but don't have an HTTP request context.
511
653
  *
654
+ * **Auto-initialization**: When running outside of the Agentuity runtime (dev server or cloud),
655
+ * this function automatically initializes minimal runtime globals. No manual setup required.
656
+ *
512
657
  * @param options - Optional configuration for the context
513
658
  * @returns A StandaloneAgentContext instance
514
659
  *
@@ -517,9 +662,9 @@ export class StandaloneAgentContext<
517
662
  * import { createAgentContext } from '@agentuity/runtime';
518
663
  * import myAgent from './agents/my-agent';
519
664
  *
520
- * // Simple usage:
665
+ * // Simple usage with ctx.run() (recommended):
521
666
  * const ctx = createAgentContext();
522
- * const result = await ctx.invoke(() => myAgent.run(input));
667
+ * const result = await ctx.run(myAgent, { name: 'World' });
523
668
  *
524
669
  * // Discord bot example:
525
670
  * client.on('messageCreate', async (message) => {
@@ -527,17 +672,20 @@ export class StandaloneAgentContext<
527
672
  * sessionId: message.id,
528
673
  * trigger: 'discord'
529
674
  * });
530
- * const response = await ctx.invoke(() =>
531
- * chatAgent.run({ message: message.content })
532
- * );
675
+ * const response = await ctx.run(chatAgent, { message: message.content });
533
676
  * await message.reply(response.text);
534
677
  * });
535
678
  *
536
679
  * // Cron job example:
537
680
  * cron.schedule('0 * * * *', async () => {
538
681
  * const ctx = createAgentContext({ trigger: 'cron' });
539
- * await ctx.invoke(() => cleanupAgent.run());
682
+ * await ctx.run(cleanupAgent);
540
683
  * });
684
+ *
685
+ * // Multiple agents in sequence:
686
+ * const ctx = createAgentContext();
687
+ * const step1 = await ctx.run(preprocessAgent, rawData);
688
+ * const result = await ctx.run(processAgent, step1);
541
689
  * ```
542
690
  */
543
691
  export function createAgentContext<TAppState = Record<string, never>>(
package/src/index.ts CHANGED
@@ -192,6 +192,7 @@ export {
192
192
  getDeploymentId,
193
193
  isDevMode,
194
194
  isProduction,
195
+ isInsideAgentRuntime,
195
196
  } from './_config';
196
197
 
197
198
  // _services.ts exports
package/dist/_config.d.ts DELETED
@@ -1,90 +0,0 @@
1
- export declare function init(): void;
2
- /**
3
- * Returns the SDK Version that was used to build this app
4
- *
5
- * @returns string
6
- */
7
- export declare function getSDKVersion(): string;
8
- /**
9
- * Returns the App Name that was used when this app was built
10
- *
11
- * @returns string
12
- */
13
- export declare function getAppName(): string;
14
- /**
15
- * Returns the App Version that was used when this app was built
16
- *
17
- * @returns string
18
- */
19
- export declare function getAppVersion(): string;
20
- /**
21
- * Returns the Organization ID for this app
22
- *
23
- * @returns string
24
- */
25
- export declare function getOrganizationId(): string | undefined;
26
- /**
27
- * Returns the Project ID for this app
28
- *
29
- * @returns string
30
- */
31
- export declare function getProjectId(): string | undefined;
32
- /**
33
- * Returns the Deployment ID for this app that was deployed
34
- *
35
- * @returns string | undefined
36
- */
37
- export declare function getDeploymentId(): string | undefined;
38
- /**
39
- * Returns true if the app is running in dev mode
40
- *
41
- * @returns boolean
42
- */
43
- export declare function isDevMode(): boolean;
44
- /**
45
- * Returns true if the app is running in production mode
46
- *
47
- * @returns boolean
48
- */
49
- export declare function isProduction(): boolean;
50
- /**
51
- * Returns the CLI version that was used when this app was built
52
- *
53
- * @returns string
54
- */
55
- export declare function getCLIVersion(): string;
56
- /**
57
- * Returns the environment setting for this app
58
- *
59
- * @returns string
60
- */
61
- export declare function getEnvironment(): string;
62
- /**
63
- * Returns true if the AGENTUITY_SDK_KEY is set
64
- *
65
- * @returns boolean
66
- */
67
- export declare function isAuthenticated(): boolean;
68
- /**
69
- * Symbol for accessing internal runtime state.
70
- * Defined here to avoid circular dependency.
71
- */
72
- export declare const AGENT_RUNTIME: unique symbol;
73
- /**
74
- * Symbol for accessing internal agent from AgentRunner.
75
- * @internal
76
- */
77
- export declare const INTERNAL_AGENT: unique symbol;
78
- /**
79
- * Symbol for tracking the current executing agent (for telemetry).
80
- * Not exposed on public AgentContext interface.
81
- * @internal
82
- */
83
- export declare const CURRENT_AGENT: unique symbol;
84
- /**
85
- * Symbol for tracking agent IDs that have executed in this session.
86
- * Used in standalone contexts to track agents for session events.
87
- * @internal
88
- */
89
- export declare const AGENT_IDS: unique symbol;
90
- //# sourceMappingURL=_config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_config.d.ts","sourceRoot":"","sources":["../src/_config.ts"],"names":[],"mappings":"AAOA,wBAAgB,IAAI,SAenB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAGnC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAGtC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAEpD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,eAA0B,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,cAAc,eAA2B,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,aAAa,eAA0B,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,SAAS,eAAsB,CAAC"}
package/dist/_config.js DELETED
@@ -1,135 +0,0 @@
1
- import { readFileSync, existsSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- let appName;
4
- let appVersion;
5
- let inited = false;
6
- export function init() {
7
- if (inited) {
8
- return;
9
- }
10
- const f = join(import.meta.dir, isProduction() ? 'package.json' : '/../package.json');
11
- if (existsSync(f)) {
12
- try {
13
- const pkg = JSON.parse(readFileSync(f, 'utf-8'));
14
- appName = pkg.name;
15
- appVersion = pkg.version;
16
- }
17
- catch {
18
- // Fallback to defaults if parsing fails
19
- }
20
- }
21
- inited = true;
22
- }
23
- /**
24
- * Returns the SDK Version that was used to build this app
25
- *
26
- * @returns string
27
- */
28
- export function getSDKVersion() {
29
- return process.env.AGENTUITY_CLOUD_SDK_VERSION ?? 'unknown';
30
- }
31
- /**
32
- * Returns the App Name that was used when this app was built
33
- *
34
- * @returns string
35
- */
36
- export function getAppName() {
37
- init();
38
- return appName ?? 'unknown';
39
- }
40
- /**
41
- * Returns the App Version that was used when this app was built
42
- *
43
- * @returns string
44
- */
45
- export function getAppVersion() {
46
- init();
47
- return appVersion ?? 'unknown';
48
- }
49
- /**
50
- * Returns the Organization ID for this app
51
- *
52
- * @returns string
53
- */
54
- export function getOrganizationId() {
55
- return process.env.AGENTUITY_CLOUD_ORG_ID;
56
- }
57
- /**
58
- * Returns the Project ID for this app
59
- *
60
- * @returns string
61
- */
62
- export function getProjectId() {
63
- return process.env.AGENTUITY_CLOUD_PROJECT_ID;
64
- }
65
- /**
66
- * Returns the Deployment ID for this app that was deployed
67
- *
68
- * @returns string | undefined
69
- */
70
- export function getDeploymentId() {
71
- return process.env.AGENTUITY_CLOUD_DEPLOYMENT_ID;
72
- }
73
- /**
74
- * Returns true if the app is running in dev mode
75
- *
76
- * @returns boolean
77
- */
78
- export function isDevMode() {
79
- return process.env.AGENTUITY_SDK_DEV_MODE === 'true';
80
- }
81
- /**
82
- * Returns true if the app is running in production mode
83
- *
84
- * @returns boolean
85
- */
86
- export function isProduction() {
87
- return getEnvironment() === 'production' && !isDevMode();
88
- }
89
- /**
90
- * Returns the CLI version that was used when this app was built
91
- *
92
- * @returns string
93
- */
94
- export function getCLIVersion() {
95
- return process.env.AGENTUITY_CLI_VERSION ?? 'unknown';
96
- }
97
- /**
98
- * Returns the environment setting for this app
99
- *
100
- * @returns string
101
- */
102
- export function getEnvironment() {
103
- return process.env.AGENTUITY_ENVIRONMENT || process.env.NODE_ENV || 'development';
104
- }
105
- /**
106
- * Returns true if the AGENTUITY_SDK_KEY is set
107
- *
108
- * @returns boolean
109
- */
110
- export function isAuthenticated() {
111
- return !!process.env.AGENTUITY_SDK_KEY;
112
- }
113
- /**
114
- * Symbol for accessing internal runtime state.
115
- * Defined here to avoid circular dependency.
116
- */
117
- export const AGENT_RUNTIME = Symbol('AGENT_RUNTIME');
118
- /**
119
- * Symbol for accessing internal agent from AgentRunner.
120
- * @internal
121
- */
122
- export const INTERNAL_AGENT = Symbol('INTERNAL_AGENT');
123
- /**
124
- * Symbol for tracking the current executing agent (for telemetry).
125
- * Not exposed on public AgentContext interface.
126
- * @internal
127
- */
128
- export const CURRENT_AGENT = Symbol('CURRENT_AGENT');
129
- /**
130
- * Symbol for tracking agent IDs that have executed in this session.
131
- * Used in standalone contexts to track agents for session events.
132
- * @internal
133
- */
134
- export const AGENT_IDS = Symbol('AGENT_IDS');
135
- //# sourceMappingURL=_config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_config.js","sourceRoot":"","sources":["../src/_config.ts"],"names":[],"mappings":"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"}
@@ -1,76 +0,0 @@
1
- import { AsyncLocalStorage } from 'node:async_hooks';
2
- import type { Context as HonoContext } from 'hono';
3
- import type { Tracer } from '@opentelemetry/api';
4
- import { type KeyValueStorage, type StreamStorage, type VectorStorage, type SandboxService } from '@agentuity/core';
5
- import type { AuthInterface } from '@agentuity/auth';
6
- import type { AgentContext, AgentRegistry, AgentRunner, AgentRuntimeState, AgentMetadata } from './agent';
7
- import { AGENT_RUNTIME } from './_config';
8
- import type { Logger } from './logger';
9
- import type WaitUntilHandler from './_waituntil';
10
- import type { Thread, Session } from './session';
11
- export interface RequestAgentContextArgs<TAgentMap extends AgentRegistry = AgentRegistry, TConfig = unknown, TAppState = Record<string, never>> {
12
- sessionId: string;
13
- agent: TAgentMap;
14
- logger: Logger;
15
- tracer: Tracer;
16
- session: Session;
17
- thread: Thread;
18
- handler: WaitUntilHandler;
19
- config: TConfig;
20
- app: TAppState;
21
- runtime: AgentRuntimeState;
22
- auth?: AuthInterface | null;
23
- }
24
- export declare class RequestAgentContext<TAgentMap extends AgentRegistry = AgentRegistry, TConfig = unknown, TAppState = Record<string, never>> implements AgentContext<TAgentMap, TConfig, TAppState> {
25
- agent: TAgentMap;
26
- logger: Logger;
27
- sessionId: string;
28
- tracer: Tracer;
29
- kv: KeyValueStorage;
30
- stream: StreamStorage;
31
- vector: VectorStorage;
32
- sandbox: SandboxService;
33
- state: Map<string, unknown>;
34
- session: Session;
35
- thread: Thread;
36
- config: TConfig;
37
- app: TAppState;
38
- current: AgentMetadata;
39
- [AGENT_RUNTIME]: AgentRuntimeState;
40
- private handler;
41
- /**
42
- * Fallback auth value for non-HTTP contexts (standalone, tests, etc.)
43
- * @internal
44
- */
45
- private _initialAuth;
46
- /**
47
- * Authentication context - lazily reads from HTTP context if available.
48
- *
49
- * This is a getter that prefers the current HTTP context's `c.var.auth`,
50
- * allowing auth middleware that runs after the agent middleware to still
51
- * propagate auth to agents.
52
- */
53
- get auth(): AuthInterface | null;
54
- /**
55
- * Set auth for non-HTTP contexts (standalone, tests).
56
- * @internal
57
- */
58
- set auth(value: AuthInterface | null);
59
- constructor(args: RequestAgentContextArgs<TAgentMap, TConfig, TAppState>);
60
- waitUntil(callback: Promise<void> | (() => void | Promise<void>)): void;
61
- }
62
- export declare const inAgentContext: () => boolean;
63
- export declare const inHTTPContext: () => boolean;
64
- export declare const getAgentContext: () => AgentContext<any, any, any>;
65
- export declare const getHTTPContext: () => HonoContext;
66
- export declare const getAgentAsyncLocalStorage: () => AsyncLocalStorage<AgentContext<any, any, any>>;
67
- export declare const getHTTPAsyncLocalStorage: () => AsyncLocalStorage<HonoContext<any, any, {}>>;
68
- /**
69
- * Get the current executing agent's metadata (for internal telemetry use only).
70
- * Returns undefined if not in an agent context or no agent is executing.
71
- * @internal
72
- */
73
- export declare const getCurrentAgentMetadata: () => AgentRunner["metadata"] | undefined;
74
- export declare const setupRequestAgentContext: <TAgentMap extends AgentRegistry = AgentRegistry, TConfig = unknown, TAppState = Record<string, never>>(ctxObject: Record<string, unknown>, args: RequestAgentContextArgs<TAgentMap, TConfig, TAppState>, next: () => Promise<void>) => Promise<void>;
75
- export declare const runInHTTPContext: <HonoContext>(ctx: HonoContext, next: () => Promise<void>) => Promise<void>;
76
- //# sourceMappingURL=_context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_context.d.ts","sourceRoot":"","sources":["../src/_context.ts"],"names":[],"mappings":"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"}