@runcore-sh/runcore 0.4.0 → 0.5.1

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 (351) hide show
  1. package/dictionary.json +2 -2
  2. package/dist/activity/log.js +2 -2
  3. package/dist/activity/log.js.map +1 -1
  4. package/dist/agents/governed-spawn.d.ts.map +1 -1
  5. package/dist/cli.js +101 -11
  6. package/dist/cli.js.map +1 -1
  7. package/dist/extensions/cache.d.ts +57 -0
  8. package/dist/extensions/cache.d.ts.map +1 -0
  9. package/dist/extensions/cache.js +173 -0
  10. package/dist/extensions/cache.js.map +1 -0
  11. package/dist/extensions/client.d.ts +55 -0
  12. package/dist/extensions/client.d.ts.map +1 -0
  13. package/dist/extensions/client.js +120 -0
  14. package/dist/extensions/client.js.map +1 -0
  15. package/dist/extensions/index.d.ts +13 -0
  16. package/dist/extensions/index.d.ts.map +1 -0
  17. package/dist/extensions/index.js +12 -0
  18. package/dist/extensions/index.js.map +1 -0
  19. package/dist/extensions/loader.d.ts +50 -0
  20. package/dist/extensions/loader.d.ts.map +1 -0
  21. package/dist/extensions/loader.js +166 -0
  22. package/dist/extensions/loader.js.map +1 -0
  23. package/dist/extensions/manifest.d.ts +38 -0
  24. package/dist/extensions/manifest.d.ts.map +1 -0
  25. package/dist/extensions/manifest.js +17 -0
  26. package/dist/extensions/manifest.js.map +1 -0
  27. package/dist/extensions/stubs.d.ts +27 -0
  28. package/dist/extensions/stubs.d.ts.map +1 -0
  29. package/dist/extensions/stubs.js +45 -0
  30. package/dist/extensions/stubs.js.map +1 -0
  31. package/dist/lib/audit.js +2 -2
  32. package/dist/lib/audit.js.map +1 -1
  33. package/dist/lib/brain-migrate.d.ts +21 -0
  34. package/dist/lib/brain-migrate.d.ts.map +1 -0
  35. package/dist/lib/brain-migrate.js +137 -0
  36. package/dist/lib/brain-migrate.js.map +1 -0
  37. package/dist/lib/paths.d.ts +27 -0
  38. package/dist/lib/paths.d.ts.map +1 -1
  39. package/dist/lib/paths.js +65 -0
  40. package/dist/lib/paths.js.map +1 -1
  41. package/dist/llm/call-log.d.ts +40 -0
  42. package/dist/llm/call-log.d.ts.map +1 -0
  43. package/dist/llm/call-log.js +35 -0
  44. package/dist/llm/call-log.js.map +1 -0
  45. package/dist/llm/complete.d.ts +6 -0
  46. package/dist/llm/complete.d.ts.map +1 -1
  47. package/dist/llm/complete.js +27 -0
  48. package/dist/llm/complete.js.map +1 -1
  49. package/dist/mcp-server.js +118 -2
  50. package/dist/mcp-server.js.map +1 -1
  51. package/dist/memory/file-backed.d.ts +4 -0
  52. package/dist/memory/file-backed.d.ts.map +1 -1
  53. package/dist/memory/file-backed.js +4 -0
  54. package/dist/memory/file-backed.js.map +1 -1
  55. package/dist/memory/vector-index.d.ts +4 -12
  56. package/dist/memory/vector-index.d.ts.map +1 -1
  57. package/dist/memory/vector-index.js +11 -93
  58. package/dist/memory/vector-index.js.map +1 -1
  59. package/dist/search/brain-docs.d.ts +17 -7
  60. package/dist/search/brain-docs.d.ts.map +1 -1
  61. package/dist/search/brain-docs.js +170 -52
  62. package/dist/search/brain-docs.js.map +1 -1
  63. package/dist/search/brain-rag.d.ts +45 -0
  64. package/dist/search/brain-rag.d.ts.map +1 -0
  65. package/dist/search/brain-rag.js +275 -0
  66. package/dist/search/brain-rag.js.map +1 -0
  67. package/dist/search/chunker.d.ts +24 -0
  68. package/dist/search/chunker.d.ts.map +1 -0
  69. package/dist/search/chunker.js +95 -0
  70. package/dist/search/chunker.js.map +1 -0
  71. package/dist/search/embedder.d.ts +16 -0
  72. package/dist/search/embedder.d.ts.map +1 -0
  73. package/dist/search/embedder.js +108 -0
  74. package/dist/search/embedder.js.map +1 -0
  75. package/dist/search/file-watcher.d.ts +11 -0
  76. package/dist/search/file-watcher.d.ts.map +1 -0
  77. package/dist/search/file-watcher.js +86 -0
  78. package/dist/search/file-watcher.js.map +1 -0
  79. package/dist/server.d.ts.map +1 -1
  80. package/dist/server.js +814 -472
  81. package/dist/server.js.map +1 -1
  82. package/dist/sessions/store.d.ts +9 -0
  83. package/dist/sessions/store.d.ts.map +1 -1
  84. package/dist/sessions/store.js.map +1 -1
  85. package/dist/settings.d.ts +26 -0
  86. package/dist/settings.d.ts.map +1 -1
  87. package/dist/settings.js +78 -2
  88. package/dist/settings.js.map +1 -1
  89. package/dist/tracing/init.d.ts +1 -1
  90. package/dist/tracing/init.d.ts.map +1 -1
  91. package/dist/utils/logger.js +2 -2
  92. package/dist/utils/logger.js.map +1 -1
  93. package/module-tiers.json +164 -0
  94. package/package.json +9 -13
  95. package/public/avatar/cache/1184385ec5522b57.mp4 +0 -0
  96. package/public/avatar/cache/1f15f6a1ebd7e439.mp4 +0 -0
  97. package/public/avatar/cache/2c7e47ff0bdeb8d1.mp4 +0 -0
  98. package/public/avatar/cache/5f308566f7abb8f2.mp4 +0 -0
  99. package/public/avatar/cache/62f9cfba848d724e.mp4 +0 -0
  100. package/public/avatar/cache/6d64e657e6bf2aab.mp4 +0 -0
  101. package/public/avatar/cache/763ad0349e0b6f26.mp4 +0 -0
  102. package/public/avatar/cache/81a516cfd461b2b9.mp4 +0 -0
  103. package/public/avatar/cache/9366de15fd6910ca.mp4 +0 -0
  104. package/public/avatar/cache/ade41a846b283895.mp4 +0 -0
  105. package/public/avatar/cache/b6066e5c65383eec.mp4 +0 -0
  106. package/public/avatar/cache/edadb75d37891fc7.mp4 +0 -0
  107. package/public/avatar/cache/f0ae159640621dd9.mp4 +0 -0
  108. package/public/avatar/cache/fc2e5419adf29d96.mp4 +0 -0
  109. package/public/index.html +379 -59
  110. package/dist/agents/autonomous.js +0 -749
  111. package/dist/agents/autonomous.js.map +0 -1
  112. package/dist/agents/commit.js +0 -113
  113. package/dist/agents/commit.js.map +0 -1
  114. package/dist/agents/continue.js +0 -158
  115. package/dist/agents/continue.js.map +0 -1
  116. package/dist/agents/cooldown.js +0 -397
  117. package/dist/agents/cooldown.js.map +0 -1
  118. package/dist/agents/dedup-guard.js +0 -131
  119. package/dist/agents/dedup-guard.js.map +0 -1
  120. package/dist/agents/feed.js +0 -176
  121. package/dist/agents/feed.js.map +0 -1
  122. package/dist/agents/governance.js +0 -292
  123. package/dist/agents/governance.js.map +0 -1
  124. package/dist/agents/governed-spawn.js +0 -192
  125. package/dist/agents/governed-spawn.js.map +0 -1
  126. package/dist/agents/heartbeat.js +0 -324
  127. package/dist/agents/heartbeat.js.map +0 -1
  128. package/dist/agents/instance-manager.js +0 -850
  129. package/dist/agents/instance-manager.js.map +0 -1
  130. package/dist/agents/issue-reporter.js +0 -123
  131. package/dist/agents/issue-reporter.js.map +0 -1
  132. package/dist/agents/issues.js +0 -141
  133. package/dist/agents/issues.js.map +0 -1
  134. package/dist/agents/locks.js +0 -234
  135. package/dist/agents/locks.js.map +0 -1
  136. package/dist/agents/memory.js +0 -93
  137. package/dist/agents/memory.js.map +0 -1
  138. package/dist/agents/monitor.js +0 -235
  139. package/dist/agents/monitor.js.map +0 -1
  140. package/dist/agents/orchestration.js +0 -715
  141. package/dist/agents/orchestration.js.map +0 -1
  142. package/dist/agents/recover.js +0 -166
  143. package/dist/agents/recover.js.map +0 -1
  144. package/dist/agents/reflection.js +0 -199
  145. package/dist/agents/reflection.js.map +0 -1
  146. package/dist/agents/runtime/bus.js +0 -174
  147. package/dist/agents/runtime/bus.js.map +0 -1
  148. package/dist/agents/runtime/config.js +0 -101
  149. package/dist/agents/runtime/config.js.map +0 -1
  150. package/dist/agents/runtime/driver.js +0 -214
  151. package/dist/agents/runtime/driver.js.map +0 -1
  152. package/dist/agents/runtime/errors.js +0 -40
  153. package/dist/agents/runtime/errors.js.map +0 -1
  154. package/dist/agents/runtime/index.js +0 -54
  155. package/dist/agents/runtime/index.js.map +0 -1
  156. package/dist/agents/runtime/lifecycle.js +0 -116
  157. package/dist/agents/runtime/lifecycle.js.map +0 -1
  158. package/dist/agents/runtime/manager.js +0 -948
  159. package/dist/agents/runtime/manager.js.map +0 -1
  160. package/dist/agents/runtime/registry.js +0 -195
  161. package/dist/agents/runtime/registry.js.map +0 -1
  162. package/dist/agents/runtime/resources.js +0 -146
  163. package/dist/agents/runtime/resources.js.map +0 -1
  164. package/dist/agents/runtime/types.js +0 -24
  165. package/dist/agents/runtime/types.js.map +0 -1
  166. package/dist/agents/spawn-policy.js +0 -202
  167. package/dist/agents/spawn-policy.js.map +0 -1
  168. package/dist/agents/spawn.js +0 -970
  169. package/dist/agents/spawn.js.map +0 -1
  170. package/dist/agents/triage.js +0 -81
  171. package/dist/agents/triage.js.map +0 -1
  172. package/dist/agents/workflow.js +0 -543
  173. package/dist/agents/workflow.js.map +0 -1
  174. package/dist/avatar/client.js +0 -172
  175. package/dist/avatar/client.js.map +0 -1
  176. package/dist/avatar/sidecar.js +0 -125
  177. package/dist/avatar/sidecar.js.map +0 -1
  178. package/dist/browser/sessions.js +0 -122
  179. package/dist/browser/sessions.js.map +0 -1
  180. package/dist/capabilities/definitions/browser.js +0 -242
  181. package/dist/capabilities/definitions/browser.js.map +0 -1
  182. package/dist/channels/whatsapp.js +0 -200
  183. package/dist/channels/whatsapp.js.map +0 -1
  184. package/dist/credentials/store.js +0 -189
  185. package/dist/credentials/store.js.map +0 -1
  186. package/dist/files/deep-index.js +0 -337
  187. package/dist/files/deep-index.js.map +0 -1
  188. package/dist/files/extract.js +0 -33
  189. package/dist/files/extract.js.map +0 -1
  190. package/dist/files/gdrive.js +0 -246
  191. package/dist/files/gdrive.js.map +0 -1
  192. package/dist/github/client.js +0 -408
  193. package/dist/github/client.js.map +0 -1
  194. package/dist/github/commit-analysis.js +0 -276
  195. package/dist/github/commit-analysis.js.map +0 -1
  196. package/dist/github/contributor-stats.js +0 -119
  197. package/dist/github/contributor-stats.js.map +0 -1
  198. package/dist/github/issue-sla.js +0 -220
  199. package/dist/github/issue-sla.js.map +0 -1
  200. package/dist/github/issue-triage.js +0 -286
  201. package/dist/github/issue-triage.js.map +0 -1
  202. package/dist/github/pr-readiness.js +0 -197
  203. package/dist/github/pr-readiness.js.map +0 -1
  204. package/dist/github/pr-review.js +0 -410
  205. package/dist/github/pr-review.js.map +0 -1
  206. package/dist/github/release-notes.js +0 -227
  207. package/dist/github/release-notes.js.map +0 -1
  208. package/dist/github/repo-health.js +0 -303
  209. package/dist/github/repo-health.js.map +0 -1
  210. package/dist/github/retry.js +0 -117
  211. package/dist/github/retry.js.map +0 -1
  212. package/dist/github/types.js +0 -8
  213. package/dist/github/types.js.map +0 -1
  214. package/dist/github/webhooks.js +0 -153
  215. package/dist/github/webhooks.js.map +0 -1
  216. package/dist/google/auth.js +0 -325
  217. package/dist/google/auth.js.map +0 -1
  218. package/dist/google/calendar-timer.js +0 -91
  219. package/dist/google/calendar-timer.js.map +0 -1
  220. package/dist/google/calendar.js +0 -270
  221. package/dist/google/calendar.js.map +0 -1
  222. package/dist/google/docs.js +0 -309
  223. package/dist/google/docs.js.map +0 -1
  224. package/dist/google/gmail-send.js +0 -219
  225. package/dist/google/gmail-send.js.map +0 -1
  226. package/dist/google/gmail-timer.js +0 -223
  227. package/dist/google/gmail-timer.js.map +0 -1
  228. package/dist/google/gmail.js +0 -470
  229. package/dist/google/gmail.js.map +0 -1
  230. package/dist/google/plugin.js +0 -169
  231. package/dist/google/plugin.js.map +0 -1
  232. package/dist/google/tasks-timer.js +0 -107
  233. package/dist/google/tasks-timer.js.map +0 -1
  234. package/dist/google/tasks.js +0 -331
  235. package/dist/google/tasks.js.map +0 -1
  236. package/dist/google/temporal.js +0 -176
  237. package/dist/google/temporal.js.map +0 -1
  238. package/dist/integrations/gate.js +0 -100
  239. package/dist/integrations/gate.js.map +0 -1
  240. package/dist/integrations/github.js +0 -331
  241. package/dist/integrations/github.js.map +0 -1
  242. package/dist/integrations/google-tasks.js +0 -432
  243. package/dist/integrations/google-tasks.js.map +0 -1
  244. package/dist/mdns.js +0 -110
  245. package/dist/mdns.js.map +0 -1
  246. package/dist/notifications/channel.js +0 -83
  247. package/dist/notifications/channel.js.map +0 -1
  248. package/dist/notifications/channels/adapter.js +0 -55
  249. package/dist/notifications/channels/adapter.js.map +0 -1
  250. package/dist/notifications/channels/index.js +0 -6
  251. package/dist/notifications/channels/index.js.map +0 -1
  252. package/dist/notifications/channels/log.js +0 -29
  253. package/dist/notifications/channels/log.js.map +0 -1
  254. package/dist/notifications/email.js +0 -72
  255. package/dist/notifications/email.js.map +0 -1
  256. package/dist/notifications/engine.js +0 -198
  257. package/dist/notifications/engine.js.map +0 -1
  258. package/dist/notifications/index.js +0 -24
  259. package/dist/notifications/index.js.map +0 -1
  260. package/dist/notifications/phone.js +0 -48
  261. package/dist/notifications/phone.js.map +0 -1
  262. package/dist/notifications/sms.js +0 -65
  263. package/dist/notifications/sms.js.map +0 -1
  264. package/dist/notifications/types.js +0 -14
  265. package/dist/notifications/types.js.map +0 -1
  266. package/dist/notifications/webhook.js +0 -65
  267. package/dist/notifications/webhook.js.map +0 -1
  268. package/dist/resend/inbox.js +0 -199
  269. package/dist/resend/inbox.js.map +0 -1
  270. package/dist/resend/webhooks.js +0 -244
  271. package/dist/resend/webhooks.js.map +0 -1
  272. package/dist/search/browse.js +0 -225
  273. package/dist/search/browse.js.map +0 -1
  274. package/dist/search/perplexity.js +0 -41
  275. package/dist/search/perplexity.js.map +0 -1
  276. package/dist/slack/channels.js +0 -277
  277. package/dist/slack/channels.js.map +0 -1
  278. package/dist/slack/client.js +0 -468
  279. package/dist/slack/client.js.map +0 -1
  280. package/dist/slack/retry.js +0 -100
  281. package/dist/slack/retry.js.map +0 -1
  282. package/dist/slack/types.js +0 -52
  283. package/dist/slack/types.js.map +0 -1
  284. package/dist/slack/webhooks.js +0 -285
  285. package/dist/slack/webhooks.js.map +0 -1
  286. package/dist/stt/client.js +0 -66
  287. package/dist/stt/client.js.map +0 -1
  288. package/dist/stt/sidecar.js +0 -115
  289. package/dist/stt/sidecar.js.map +0 -1
  290. package/dist/tracing/bridge.js +0 -70
  291. package/dist/tracing/bridge.js.map +0 -1
  292. package/dist/tracing/correlation.js +0 -49
  293. package/dist/tracing/correlation.js.map +0 -1
  294. package/dist/tracing/index.js +0 -18
  295. package/dist/tracing/index.js.map +0 -1
  296. package/dist/tracing/init.js +0 -81
  297. package/dist/tracing/init.js.map +0 -1
  298. package/dist/tracing/instrument.js +0 -145
  299. package/dist/tracing/instrument.js.map +0 -1
  300. package/dist/tracing/middleware.js +0 -69
  301. package/dist/tracing/middleware.js.map +0 -1
  302. package/dist/tracing/tracer.js +0 -327
  303. package/dist/tracing/tracer.js.map +0 -1
  304. package/dist/tts/client.js +0 -48
  305. package/dist/tts/client.js.map +0 -1
  306. package/dist/tts/sidecar.js +0 -148
  307. package/dist/tts/sidecar.js.map +0 -1
  308. package/dist/twilio/call.js +0 -79
  309. package/dist/twilio/call.js.map +0 -1
  310. package/dist/vault/matcher.js +0 -197
  311. package/dist/vault/matcher.js.map +0 -1
  312. package/dist/vault/personal.js +0 -163
  313. package/dist/vault/personal.js.map +0 -1
  314. package/dist/vault/policy.js +0 -159
  315. package/dist/vault/policy.js.map +0 -1
  316. package/dist/vault/store.js +0 -122
  317. package/dist/vault/store.js.map +0 -1
  318. package/dist/vault/transfer.js +0 -188
  319. package/dist/vault/transfer.js.map +0 -1
  320. package/dist/volumes/index.js +0 -2
  321. package/dist/volumes/index.js.map +0 -1
  322. package/dist/volumes/manager.js +0 -462
  323. package/dist/volumes/manager.js.map +0 -1
  324. package/dist/volumes/types.js +0 -8
  325. package/dist/volumes/types.js.map +0 -1
  326. package/dist/webhooks/config.js +0 -214
  327. package/dist/webhooks/config.js.map +0 -1
  328. package/dist/webhooks/event-log.js +0 -132
  329. package/dist/webhooks/event-log.js.map +0 -1
  330. package/dist/webhooks/handler.js +0 -103
  331. package/dist/webhooks/handler.js.map +0 -1
  332. package/dist/webhooks/handlers.js +0 -231
  333. package/dist/webhooks/handlers.js.map +0 -1
  334. package/dist/webhooks/index.js +0 -33
  335. package/dist/webhooks/index.js.map +0 -1
  336. package/dist/webhooks/mount.js +0 -400
  337. package/dist/webhooks/mount.js.map +0 -1
  338. package/dist/webhooks/registry.js +0 -143
  339. package/dist/webhooks/registry.js.map +0 -1
  340. package/dist/webhooks/relay.js +0 -53
  341. package/dist/webhooks/relay.js.map +0 -1
  342. package/dist/webhooks/retry.js +0 -270
  343. package/dist/webhooks/retry.js.map +0 -1
  344. package/dist/webhooks/router.js +0 -290
  345. package/dist/webhooks/router.js.map +0 -1
  346. package/dist/webhooks/twilio.js +0 -129
  347. package/dist/webhooks/twilio.js.map +0 -1
  348. package/dist/webhooks/types.js +0 -8
  349. package/dist/webhooks/types.js.map +0 -1
  350. package/dist/webhooks/verify.js +0 -154
  351. package/dist/webhooks/verify.js.map +0 -1
@@ -1,101 +0,0 @@
1
- /**
2
- * Agent Runtime Environment — Configuration.
3
- *
4
- * Loads defaults, merges env var overrides, produces a frozen RuntimeConfig.
5
- * Environment variables use the CORE_RUNTIME_ prefix (DASH_RUNTIME_ also supported).
6
- */
7
- import { join } from "node:path";
8
- import { resolveEnv } from "../../instance.js";
9
- import { BRAIN_DIR } from "../../lib/paths.js";
10
- // ---------------------------------------------------------------------------
11
- // Defaults
12
- // ---------------------------------------------------------------------------
13
- const DEFAULTS = {
14
- maxConcurrentAgents: 5,
15
- defaultTimeoutMs: 10 * 60 * 1000, // 10 minutes
16
- defaultMaxRetries: 2,
17
- defaultBackoffMs: 2_000,
18
- defaultBackoffMultiplier: 2,
19
- defaultMaxBackoffMs: 30_000,
20
- maxTotalMemoryMB: 2048, // 2 GB aggregate cap
21
- defaultMemoryLimitMB: 512,
22
- defaultCpuWeight: 50,
23
- monitorIntervalMs: 10_000, // 10 seconds
24
- persistDir: join(BRAIN_DIR, "agents", "runtime"),
25
- };
26
- // ---------------------------------------------------------------------------
27
- // Env var resolver
28
- // ---------------------------------------------------------------------------
29
- function envInt(suffix) {
30
- const v = resolveEnv(suffix);
31
- if (v == null)
32
- return undefined;
33
- const n = parseInt(v, 10);
34
- return Number.isFinite(n) ? n : undefined;
35
- }
36
- function envStr(suffix) {
37
- return resolveEnv(suffix) || undefined;
38
- }
39
- // ---------------------------------------------------------------------------
40
- // Public API
41
- // ---------------------------------------------------------------------------
42
- /** Build RuntimeConfig from defaults + env var overrides. */
43
- export function loadRuntimeConfig(overrides) {
44
- const config = {
45
- maxConcurrentAgents: overrides?.maxConcurrentAgents ??
46
- envInt("RUNTIME_MAX_AGENTS") ??
47
- DEFAULTS.maxConcurrentAgents,
48
- defaultTimeoutMs: overrides?.defaultTimeoutMs ??
49
- envInt("RUNTIME_TIMEOUT_MS") ??
50
- DEFAULTS.defaultTimeoutMs,
51
- defaultMaxRetries: overrides?.defaultMaxRetries ??
52
- envInt("RUNTIME_MAX_RETRIES") ??
53
- DEFAULTS.defaultMaxRetries,
54
- defaultBackoffMs: overrides?.defaultBackoffMs ??
55
- envInt("RUNTIME_BACKOFF_MS") ??
56
- DEFAULTS.defaultBackoffMs,
57
- defaultBackoffMultiplier: overrides?.defaultBackoffMultiplier ??
58
- envInt("RUNTIME_BACKOFF_MULT") ??
59
- DEFAULTS.defaultBackoffMultiplier,
60
- defaultMaxBackoffMs: overrides?.defaultMaxBackoffMs ??
61
- envInt("RUNTIME_MAX_BACKOFF_MS") ??
62
- DEFAULTS.defaultMaxBackoffMs,
63
- maxTotalMemoryMB: overrides?.maxTotalMemoryMB ??
64
- envInt("RUNTIME_MAX_MEMORY_MB") ??
65
- DEFAULTS.maxTotalMemoryMB,
66
- defaultMemoryLimitMB: overrides?.defaultMemoryLimitMB ??
67
- envInt("RUNTIME_DEFAULT_MEM_MB") ??
68
- DEFAULTS.defaultMemoryLimitMB,
69
- defaultCpuWeight: overrides?.defaultCpuWeight ??
70
- envInt("RUNTIME_DEFAULT_CPU") ??
71
- DEFAULTS.defaultCpuWeight,
72
- monitorIntervalMs: overrides?.monitorIntervalMs ??
73
- envInt("RUNTIME_MONITOR_MS") ??
74
- DEFAULTS.monitorIntervalMs,
75
- persistDir: overrides?.persistDir ??
76
- envStr("RUNTIME_PERSIST_DIR") ??
77
- DEFAULTS.persistDir,
78
- };
79
- return Object.freeze(config);
80
- }
81
- /** Build per-instance config by merging runtime defaults with request overrides. */
82
- export function resolveInstanceConfig(runtimeConfig, overrides) {
83
- return {
84
- timeoutMs: overrides?.timeoutMs ?? runtimeConfig.defaultTimeoutMs,
85
- maxRetries: overrides?.maxRetries ?? runtimeConfig.defaultMaxRetries,
86
- backoffMs: overrides?.backoffMs ?? runtimeConfig.defaultBackoffMs,
87
- backoffMultiplier: overrides?.backoffMultiplier ?? runtimeConfig.defaultBackoffMultiplier,
88
- maxBackoffMs: overrides?.maxBackoffMs ?? runtimeConfig.defaultMaxBackoffMs,
89
- env: overrides?.env ?? {},
90
- isolation: overrides?.isolation ?? "shared",
91
- priority: overrides?.priority ?? 50,
92
- };
93
- }
94
- /** Build resource allocation from runtime defaults with request overrides. */
95
- export function resolveResources(runtimeConfig, overrides) {
96
- return {
97
- memoryLimitMB: overrides?.memoryLimitMB ?? runtimeConfig.defaultMemoryLimitMB,
98
- cpuWeight: overrides?.cpuWeight ?? runtimeConfig.defaultCpuWeight,
99
- };
100
- }
101
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/agents/runtime/config.ts"],"names":[],"mappings":"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"}
@@ -1,214 +0,0 @@
1
- /**
2
- * Agent Runtime Environment — Claude CLI agent driver.
3
- *
4
- * Implements the AgentDriver interface using the existing Core agent
5
- * spawn machinery. This bridges the new runtime layer with the proven
6
- * process spawning in src/agents/spawn.ts.
7
- */
8
- import { spawn } from "node:child_process";
9
- import { writeFileSync } from "node:fs";
10
- import { join } from "node:path";
11
- import { LOGS_DIR } from "../store.js";
12
- import { createLogger } from "../../utils/logger.js";
13
- const log = createLogger("agent-driver");
14
- // ---------------------------------------------------------------------------
15
- // Process tracking
16
- // ---------------------------------------------------------------------------
17
- /** Map of instance ID → child process (only for current session). */
18
- const processes = new Map();
19
- /** Map of instance ID → timeout timer. */
20
- const timers = new Map();
21
- /** Exit handlers registered per instance. */
22
- const exitHandlers = new Map();
23
- // ---------------------------------------------------------------------------
24
- // Claude CLI Driver
25
- // ---------------------------------------------------------------------------
26
- export class ClaudeCliDriver {
27
- name = "claude-cli";
28
- /** Register a callback for when a process exits. */
29
- onExit(instanceId, handler) {
30
- exitHandlers.set(instanceId, handler);
31
- }
32
- async spawn(instance) {
33
- const stdoutPath = join(LOGS_DIR, `${instance.taskId}.stdout.log`);
34
- const stderrPath = join(LOGS_DIR, `${instance.taskId}.stderr.log`);
35
- const promptPath = join(LOGS_DIR, `${instance.taskId}.prompt.txt`);
36
- // Resolve prompt: if resuming with checkpoint, prepend context
37
- const prompt = instance.checkpointData
38
- ? `[Resuming from previous session]\n\nPrevious context:\n${instance.checkpointData}\n\nContinue the task.`
39
- : this.resolvePrompt(instance);
40
- writeFileSync(promptPath, prompt, "utf-8");
41
- // Clean env to allow nested Claude Code sessions
42
- const cleanEnv = { ...process.env, ...instance.config.env };
43
- delete cleanEnv.CLAUDECODE;
44
- const taskCwd = instance.cwd || process.cwd();
45
- const wrapperScript = `
46
- const fs = require("fs");
47
- const { spawnSync } = require("child_process");
48
- const prompt = fs.readFileSync(${JSON.stringify(promptPath)}, "utf-8");
49
- const r = spawnSync("claude", [
50
- "--print", "--output-format", "text", "--dangerously-skip-permissions", prompt
51
- ], {
52
- cwd: ${JSON.stringify(taskCwd)},
53
- encoding: "utf-8",
54
- maxBuffer: 50 * 1024 * 1024,
55
- timeout: ${instance.config.timeoutMs},
56
- windowsHide: true
57
- });
58
- fs.writeFileSync(${JSON.stringify(stdoutPath)}, r.stdout || "", "utf-8");
59
- fs.writeFileSync(${JSON.stringify(stderrPath)}, r.stderr || "", "utf-8");
60
- process.exit(r.status || 0);
61
- `;
62
- const child = spawn(process.execPath, ["--eval", wrapperScript], {
63
- cwd: taskCwd,
64
- detached: true,
65
- stdio: "ignore",
66
- env: cleanEnv,
67
- windowsHide: true,
68
- });
69
- child.unref();
70
- processes.set(instance.id, child);
71
- log.info("Agent process spawned", { instanceId: instance.id, taskId: instance.taskId, pid: child.pid, label: instance.metadata.label });
72
- // Wire exit handler — classify exit reason for diagnostics
73
- child.on("exit", (code, signal) => {
74
- const reason = signal
75
- ? `signal:${signal}` // killed externally or by timeout
76
- : code === null
77
- ? "exit:null (likely timeout or OOM)"
78
- : code === 0
79
- ? "clean exit"
80
- : `exit code ${code}`;
81
- log.info("Agent process exited", { instanceId: instance.id, taskId: instance.taskId, exitCode: code, signal, reason });
82
- // Log stderr content for failed exits to aid debugging
83
- if (code !== 0) {
84
- import("node:fs/promises").then(({ readFile }) => readFile(stderrPath, "utf-8").then((stderr) => {
85
- if (stderr.trim()) {
86
- log.warn("Agent stderr output", { instanceId: instance.id, stderr: stderr.slice(-1000) });
87
- }
88
- })).catch(() => { });
89
- }
90
- processes.delete(instance.id);
91
- clearTimer(instance.id);
92
- const handler = exitHandlers.get(instance.id);
93
- if (handler) {
94
- exitHandlers.delete(instance.id);
95
- // Small delay for file flush
96
- setTimeout(() => handler(code), 300);
97
- }
98
- });
99
- // Wire error handler
100
- child.on("error", (err) => {
101
- log.error("Agent process error", { instanceId: instance.id, taskId: instance.taskId, error: err.message });
102
- processes.delete(instance.id);
103
- clearTimer(instance.id);
104
- const handler = exitHandlers.get(instance.id);
105
- if (handler) {
106
- exitHandlers.delete(instance.id);
107
- handler(-1);
108
- }
109
- });
110
- // Set timeout
111
- if (instance.config.timeoutMs > 0) {
112
- const timer = setTimeout(() => {
113
- if (processes.has(instance.id)) {
114
- this.terminate(instance).catch(() => { });
115
- }
116
- }, instance.config.timeoutMs);
117
- timers.set(instance.id, timer);
118
- }
119
- return child.pid;
120
- }
121
- async pause(instance) {
122
- log.info("Pausing agent process", { instanceId: instance.id, taskId: instance.taskId });
123
- // Claude CLI processes can't be truly paused. We kill the process
124
- // and save partial output as checkpoint data for resumption.
125
- const child = processes.get(instance.id);
126
- if (!child)
127
- return undefined;
128
- // Read any output so far as checkpoint
129
- let checkpoint;
130
- try {
131
- const { readFile } = await import("node:fs/promises");
132
- const stdout = await readFile(join(LOGS_DIR, `${instance.taskId}.stdout.log`), "utf-8");
133
- if (stdout.trim()) {
134
- checkpoint = stdout.trim().slice(0, 2000);
135
- }
136
- }
137
- catch {
138
- // No output yet
139
- }
140
- // Kill the process
141
- await this.terminate(instance);
142
- return checkpoint;
143
- }
144
- async resume(instance, checkpoint) {
145
- // Store checkpoint data on the instance for spawn to use
146
- if (checkpoint) {
147
- instance.checkpointData = checkpoint;
148
- }
149
- return this.spawn(instance);
150
- }
151
- async terminate(instance) {
152
- log.info("Terminating agent process", { instanceId: instance.id, taskId: instance.taskId, pid: instance.pid });
153
- const child = processes.get(instance.id);
154
- clearTimer(instance.id);
155
- exitHandlers.delete(instance.id);
156
- if (!child)
157
- return;
158
- processes.delete(instance.id);
159
- try {
160
- if (process.platform === "win32" && child.pid) {
161
- spawn("taskkill", ["/pid", String(child.pid), "/T", "/F"], { shell: true });
162
- }
163
- else {
164
- child.kill("SIGTERM");
165
- }
166
- }
167
- catch {
168
- log.debug("Process already exited during terminate", { instanceId: instance.id });
169
- }
170
- }
171
- isAlive(instance) {
172
- // Check our tracked processes first
173
- if (processes.has(instance.id))
174
- return true;
175
- // Fall back to PID check for recovered processes
176
- if (instance.pid) {
177
- try {
178
- process.kill(instance.pid, 0);
179
- return true;
180
- }
181
- catch {
182
- return false;
183
- }
184
- }
185
- return false;
186
- }
187
- // -----------------------------------------------------------------------
188
- // Helpers
189
- // -----------------------------------------------------------------------
190
- resolvePrompt(instance) {
191
- // The prompt is stored on the linked AgentTask.
192
- // The runtime manager will set this before calling spawn.
193
- return instance._prompt ?? "";
194
- }
195
- /** Get the process for an instance (for monitoring). */
196
- getProcess(instanceId) {
197
- return processes.get(instanceId);
198
- }
199
- /** Get all tracked instance IDs. */
200
- getActiveIds() {
201
- return Array.from(processes.keys());
202
- }
203
- }
204
- // ---------------------------------------------------------------------------
205
- // Helpers
206
- // ---------------------------------------------------------------------------
207
- function clearTimer(instanceId) {
208
- const timer = timers.get(instanceId);
209
- if (timer) {
210
- clearTimeout(timer);
211
- timers.delete(instanceId);
212
- }
213
- }
214
- //# sourceMappingURL=driver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/agents/runtime/driver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,GAAG,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;AAEzC,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,qEAAqE;AACrE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAwB,CAAC;AAElD,0CAA0C;AAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyC,CAAC;AAEhE,6CAA6C;AAC7C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyC,CAAC;AAEtE,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,MAAM,OAAO,eAAe;IACjB,IAAI,GAAG,YAAY,CAAC;IAE7B,oDAAoD;IACpD,MAAM,CAAC,UAAkB,EAAE,OAAsC;QAC/D,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAuB;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;QAEnE,+DAA+D;QAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc;YACpC,CAAC,CAAC,0DAA0D,QAAQ,CAAC,cAAc,wBAAwB;YAC3G,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEjC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAE3C,iDAAiD;QACjD,MAAM,QAAQ,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAC5D,OAAO,QAAQ,CAAC,UAAU,CAAC;QAE3B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAE9C,MAAM,aAAa,GAAG;;;uCAGa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;;;;eAIlD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;;;mBAGnB,QAAQ,CAAC,MAAM,CAAC,SAAS;;;yBAGnB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;yBAC1B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;;KAE9C,CAAC;QAEF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE;YAC/D,GAAG,EAAE,OAAO;YACZ,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,QAAQ;YACf,GAAG,EAAE,QAAQ;YACb,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QAEH,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAClC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAExI,2DAA2D;QAC3D,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,MAAM;gBACnB,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC,kCAAkC;gBACvD,CAAC,CAAC,IAAI,KAAK,IAAI;oBACb,CAAC,CAAC,mCAAmC;oBACrC,CAAC,CAAC,IAAI,KAAK,CAAC;wBACV,CAAC,CAAC,YAAY;wBACd,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAEvH,uDAAuD;YACvD,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAC/C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC5C,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;wBAClB,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC5F,CAAC;gBACH,CAAC,CAAC,CACH,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACpB,CAAC;YAED,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC9B,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACxB,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACjC,6BAA6B;gBAC7B,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACtH,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC9B,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACxB,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACjC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,cAAc;QACd,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,KAAK,CAAC,GAAG,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAuB;QACjC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACxF,kEAAkE;QAClE,6DAA6D;QAC7D,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,uCAAuC;QACvC,IAAI,UAA8B,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC,EAC/C,OAAO,CACR,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClB,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;QAED,mBAAmB;QACnB,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE/B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAuB,EAAE,UAAmB;QACvD,yDAAyD;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,QAAQ,CAAC,cAAc,GAAG,UAAU,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAuB;QACrC,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/G,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxB,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEjC,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE9B,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC9C,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,KAAK,CAAC,yCAAyC,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,OAAO,CAAC,QAAuB;QAC7B,oCAAoC;QACpC,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QAE5C,iDAAiD;QACjD,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0EAA0E;IAC1E,UAAU;IACV,0EAA0E;IAElE,aAAa,CAAC,QAAuB;QAC3C,gDAAgD;QAChD,0DAA0D;QAC1D,OAAQ,QAAiD,CAAC,OAAO,IAAI,EAAE,CAAC;IAC1E,CAAC;IAED,wDAAwD;IACxD,UAAU,CAAC,UAAkB;QAC3B,OAAO,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,oCAAoC;IACpC,YAAY;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;CACF;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,UAAU,CAAC,UAAkB;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,KAAK,EAAE,CAAC;QACV,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -1,40 +0,0 @@
1
- /**
2
- * Agent Runtime Environment — Error types and codes.
3
- */
4
- /** Runtime-specific error with structured code and recoverability flag. */
5
- export class RuntimeError extends Error {
6
- code;
7
- recoverable;
8
- context;
9
- constructor(code, message, recoverable = false, context) {
10
- super(message);
11
- this.code = code;
12
- this.recoverable = recoverable;
13
- this.context = context;
14
- this.name = "RuntimeError";
15
- }
16
- }
17
- /** All known error codes. */
18
- export const ErrorCodes = {
19
- // Resource limits
20
- RESOURCE_EXHAUSTED: "RESOURCE_EXHAUSTED",
21
- MAX_AGENTS_REACHED: "MAX_AGENTS_REACHED",
22
- MEMORY_LIMIT_EXCEEDED: "MEMORY_LIMIT_EXCEEDED",
23
- // Lifecycle
24
- INVALID_TRANSITION: "INVALID_TRANSITION",
25
- AGENT_NOT_FOUND: "AGENT_NOT_FOUND",
26
- ALREADY_TERMINATED: "ALREADY_TERMINATED",
27
- // Spawning
28
- SPAWN_FAILED: "SPAWN_FAILED",
29
- RESUME_FAILED: "RESUME_FAILED",
30
- PAUSE_NOT_SUPPORTED: "PAUSE_NOT_SUPPORTED",
31
- // Execution
32
- TIMEOUT: "TIMEOUT",
33
- DRIVER_ERROR: "DRIVER_ERROR",
34
- MAX_RETRIES_EXCEEDED: "MAX_RETRIES_EXCEEDED",
35
- // System
36
- SHUTDOWN_IN_PROGRESS: "SHUTDOWN_IN_PROGRESS",
37
- REGISTRY_CORRUPT: "REGISTRY_CORRUPT",
38
- BUS_DELIVERY_FAILED: "BUS_DELIVERY_FAILED",
39
- };
40
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/agents/runtime/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,2EAA2E;AAC3E,MAAM,OAAO,YAAa,SAAQ,KAAK;IAEnB;IAEA;IACA;IAJlB,YACkB,IAAY,EAC5B,OAAe,EACC,cAAuB,KAAK,EAC5B,OAAiC;QAEjD,KAAK,CAAC,OAAO,CAAC,CAAC;QALC,SAAI,GAAJ,IAAI,CAAQ;QAEZ,gBAAW,GAAX,WAAW,CAAiB;QAC5B,YAAO,GAAP,OAAO,CAA0B;QAGjD,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,6BAA6B;AAC7B,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,kBAAkB;IAClB,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,qBAAqB,EAAE,uBAAuB;IAE9C,YAAY;IACZ,kBAAkB,EAAE,oBAAoB;IACxC,eAAe,EAAE,iBAAiB;IAClC,kBAAkB,EAAE,oBAAoB;IAExC,WAAW;IACX,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,mBAAmB,EAAE,qBAAqB;IAE1C,YAAY;IACZ,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,cAAc;IAC5B,oBAAoB,EAAE,sBAAsB;IAE5C,SAAS;IACT,oBAAoB,EAAE,sBAAsB;IAC5C,gBAAgB,EAAE,kBAAkB;IACpC,mBAAmB,EAAE,qBAAqB;CAClC,CAAC"}
@@ -1,54 +0,0 @@
1
- /**
2
- * Agent Runtime Environment — Public API.
3
- *
4
- * Re-exports the core runtime components and provides a convenience
5
- * factory for creating a fully configured RuntimeManager.
6
- */
7
- export { VALID_TRANSITIONS, TERMINAL_STATES } from "./types.js";
8
- // Errors
9
- export { RuntimeError, ErrorCodes } from "./errors.js";
10
- // Configuration
11
- export { loadRuntimeConfig, resolveInstanceConfig, resolveResources } from "./config.js";
12
- // Lifecycle state machine
13
- export { isValidTransition, assertTransition, isTerminal, transition, shouldRetry, prepareRetry, reachableStates, isActive, } from "./lifecycle.js";
14
- // Resources
15
- export { ResourcePool } from "./resources.js";
16
- // Event bus
17
- export { RuntimeBus } from "./bus.js";
18
- // Registry
19
- export { AgentRegistry } from "./registry.js";
20
- // Driver
21
- export { ClaudeCliDriver } from "./driver.js";
22
- // Manager
23
- export { RuntimeManager } from "./manager.js";
24
- // ---------------------------------------------------------------------------
25
- // Factory
26
- // ---------------------------------------------------------------------------
27
- import { RuntimeManager } from "./manager.js";
28
- import { ClaudeCliDriver } from "./driver.js";
29
- /** Module-level singleton. */
30
- let _manager = null;
31
- /**
32
- * Create and initialize a RuntimeManager with the default Claude CLI driver.
33
- * Returns the same instance on subsequent calls (singleton).
34
- */
35
- export async function createRuntime(configOverrides) {
36
- if (_manager)
37
- return _manager;
38
- const driver = new ClaudeCliDriver();
39
- _manager = new RuntimeManager(driver, configOverrides);
40
- await _manager.init();
41
- return _manager;
42
- }
43
- /** Get the current runtime manager (or null if not initialized). */
44
- export function getRuntime() {
45
- return _manager;
46
- }
47
- /** Shut down and clear the singleton runtime. */
48
- export async function shutdownRuntime(reason) {
49
- if (_manager) {
50
- await _manager.shutdown(reason);
51
- _manager = null;
52
- }
53
- }
54
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmBH,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhE,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGvD,gBAAgB;AAChB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEzF,0BAA0B;AAC1B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,GACT,MAAM,gBAAgB,CAAC;AAExB,YAAY;AACZ,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,YAAY;AACZ,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,SAAS;AACT,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,UAAU;AACV,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,8BAA8B;AAC9B,IAAI,QAAQ,GAA0B,IAAI,CAAC;AAE3C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,eAAwC;IAExC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACvD,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEtB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,UAAU;IACxB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,iDAAiD;AACjD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAe;IACnD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChC,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -1,116 +0,0 @@
1
- /**
2
- * Agent Runtime Environment — Lifecycle state machine.
3
- *
4
- * Enforces valid state transitions with guards and hooks.
5
- * Every transition is validated, timestamped, and emits a LifecycleEvent.
6
- */
7
- import { VALID_TRANSITIONS, TERMINAL_STATES } from "./types.js";
8
- import { RuntimeError, ErrorCodes } from "./errors.js";
9
- // ---------------------------------------------------------------------------
10
- // Transition validation
11
- // ---------------------------------------------------------------------------
12
- /** Check if a transition from → to is valid per the state machine. */
13
- export function isValidTransition(from, to) {
14
- return VALID_TRANSITIONS[from]?.includes(to) ?? false;
15
- }
16
- /** Assert a transition is valid; throw RuntimeError if not. */
17
- export function assertTransition(from, to) {
18
- if (!isValidTransition(from, to)) {
19
- throw new RuntimeError(ErrorCodes.INVALID_TRANSITION, `Invalid state transition: ${from} → ${to}`, false, { from, to, validTargets: VALID_TRANSITIONS[from] });
20
- }
21
- }
22
- /** Check if an agent is in a terminal state. */
23
- export function isTerminal(state) {
24
- return TERMINAL_STATES.has(state);
25
- }
26
- /**
27
- * Apply a state transition to an agent instance.
28
- *
29
- * - Validates the transition
30
- * - Updates state + timestamps
31
- * - Returns the LifecycleEvent for emission
32
- *
33
- * Mutates the instance in place (consistent with existing Core patterns).
34
- */
35
- export function transition(instance, newState, reason, error) {
36
- assertTransition(instance.state, newState);
37
- const event = {
38
- agentId: instance.id,
39
- previousState: instance.state,
40
- newState,
41
- timestamp: new Date().toISOString(),
42
- reason,
43
- };
44
- instance.state = newState;
45
- instance.updatedAt = event.timestamp;
46
- // Set state-specific timestamps
47
- if (newState === "paused") {
48
- instance.pausedAt = event.timestamp;
49
- }
50
- else if (isTerminal(newState)) {
51
- instance.terminatedAt = event.timestamp;
52
- }
53
- // Attach error if transitioning to failed
54
- if (newState === "failed" && error) {
55
- instance.error = error;
56
- }
57
- return event;
58
- }
59
- // ---------------------------------------------------------------------------
60
- // Retry logic
61
- // ---------------------------------------------------------------------------
62
- /**
63
- * Determine if an agent should be retried after failure.
64
- * Returns the delay in ms before retry, or null if no retry should occur.
65
- *
66
- * Uses exponential backoff with jitter to prevent thundering-herd when
67
- * multiple agents fail simultaneously.
68
- */
69
- export function shouldRetry(instance) {
70
- const { maxRetries, backoffMs, backoffMultiplier, maxBackoffMs } = instance.config;
71
- if (instance.retryCount >= maxRetries)
72
- return null;
73
- if (instance.error && !instance.error.recoverable)
74
- return null;
75
- const baseDelay = backoffMs * Math.pow(backoffMultiplier, instance.retryCount);
76
- // Add ±25% jitter to prevent synchronized retries
77
- const jitter = baseDelay * 0.25 * (2 * Math.random() - 1);
78
- const delay = Math.min(Math.max(0, baseDelay + jitter), maxBackoffMs);
79
- return Math.round(delay);
80
- }
81
- /**
82
- * Prepare an instance for retry: increment counter, clear error, reset to initializing.
83
- * Returns the LifecycleEvent for the transition back to initializing.
84
- *
85
- * The caller should transition through failed first, then call this to reset.
86
- * This does a direct state override since failed → initializing isn't in the
87
- * standard FSM — retries are a runtime-level concern.
88
- */
89
- export function prepareRetry(instance) {
90
- const event = {
91
- agentId: instance.id,
92
- previousState: instance.state,
93
- newState: "initializing",
94
- timestamp: new Date().toISOString(),
95
- reason: `Retry attempt ${instance.retryCount + 1}/${instance.config.maxRetries}`,
96
- };
97
- instance.retryCount += 1;
98
- instance.state = "initializing";
99
- instance.error = undefined;
100
- instance.pid = undefined;
101
- instance.updatedAt = event.timestamp;
102
- instance.terminatedAt = undefined;
103
- return event;
104
- }
105
- // ---------------------------------------------------------------------------
106
- // Convenience queries
107
- // ---------------------------------------------------------------------------
108
- /** Returns all states reachable from the given state. */
109
- export function reachableStates(from) {
110
- return VALID_TRANSITIONS[from] ?? [];
111
- }
112
- /** Check if an agent is currently active (not terminal). */
113
- export function isActive(state) {
114
- return !isTerminal(state);
115
- }
116
- //# sourceMappingURL=lifecycle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../src/agents/runtime/lifecycle.ts"],"names":[],"mappings":"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"}