@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 +0,0 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/agents/runtime/manager.ts"],"names":[],"mappings":"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"}
@@ -1,195 +0,0 @@
1
- /**
2
- * Agent Runtime Environment — Agent instance registry.
3
- *
4
- * In-memory map of AgentInstance objects with file-backed persistence.
5
- * Follows Core patterns: JSON files in brain/agents/runtime/, atomic writes.
6
- */
7
- import { mkdir, readFile, writeFile, readdir, rename, unlink } from "node:fs/promises";
8
- import { join } from "node:path";
9
- import { randomBytes } from "node:crypto";
10
- import { TERMINAL_STATES } from "./types.js";
11
- // ---------------------------------------------------------------------------
12
- // Registry
13
- // ---------------------------------------------------------------------------
14
- export class AgentRegistry {
15
- persistDir;
16
- instances = new Map();
17
- initialized = false;
18
- constructor(persistDir) {
19
- this.persistDir = persistDir;
20
- }
21
- // -------------------------------------------------------------------------
22
- // Initialization
23
- // -------------------------------------------------------------------------
24
- /** Ensure persist directory exists and load all instances from disk. */
25
- async init() {
26
- if (this.initialized)
27
- return;
28
- await mkdir(this.persistDir, { recursive: true });
29
- await this.loadAll();
30
- this.initialized = true;
31
- }
32
- // -------------------------------------------------------------------------
33
- // CRUD
34
- // -------------------------------------------------------------------------
35
- /** Generate a unique instance ID. */
36
- generateId() {
37
- return `rt_${Date.now()}_${randomBytes(4).toString("hex")}`;
38
- }
39
- /** Register a new instance. Persists to disk. */
40
- async register(instance) {
41
- this.instances.set(instance.id, instance);
42
- await this.persist(instance);
43
- }
44
- /** Get an instance by ID. */
45
- get(id) {
46
- return this.instances.get(id);
47
- }
48
- /** Get an instance by its linked taskId. */
49
- getByTaskId(taskId) {
50
- for (const inst of this.instances.values()) {
51
- if (inst.taskId === taskId)
52
- return inst;
53
- }
54
- return undefined;
55
- }
56
- /**
57
- * Update an instance (merge partial fields). Persists to disk.
58
- * When `skipPersist` is true, updates in-memory only (used for terminal
59
- * state transitions — GC will delete the file within gcTtlMs anyway,
60
- * so the disk write is wasted I/O).
61
- */
62
- async update(id, partial, skipPersist = false) {
63
- const instance = this.instances.get(id);
64
- if (!instance)
65
- return undefined;
66
- Object.assign(instance, partial);
67
- instance.updatedAt = new Date().toISOString();
68
- if (!skipPersist) {
69
- await this.persist(instance);
70
- }
71
- return instance;
72
- }
73
- /** List all instances, optionally filtered by state. */
74
- list(filter) {
75
- if (!filter)
76
- return Array.from(this.instances.values());
77
- // Use Set for O(1) state lookups when filtering by multiple states
78
- const stateSet = filter.states ? new Set(filter.states) : null;
79
- const result = [];
80
- for (const inst of this.instances.values()) {
81
- if (filter.state && inst.state !== filter.state)
82
- continue;
83
- if (stateSet && !stateSet.has(inst.state))
84
- continue;
85
- result.push(inst);
86
- }
87
- return result;
88
- }
89
- /** List all active (non-terminal) instances. */
90
- listActive() {
91
- return Array.from(this.instances.values()).filter((inst) => !TERMINAL_STATES.has(inst.state));
92
- }
93
- /** Count instances by state. */
94
- countByState() {
95
- const counts = {};
96
- for (const inst of this.instances.values()) {
97
- counts[inst.state] = (counts[inst.state] || 0) + 1;
98
- }
99
- return counts;
100
- }
101
- /** Total number of tracked instances. */
102
- get size() {
103
- return this.instances.size;
104
- }
105
- // -------------------------------------------------------------------------
106
- // Persistence
107
- // -------------------------------------------------------------------------
108
- /** Atomic write: instance → JSON file. Uses compact JSON (no indentation). */
109
- async persist(instance) {
110
- const target = join(this.persistDir, `${instance.id}.json`);
111
- const tmp = target + ".tmp";
112
- await writeFile(tmp, JSON.stringify(instance), "utf-8");
113
- await rename(tmp, target);
114
- }
115
- /** Load all instance files from the persist directory (parallel I/O). */
116
- async loadAll() {
117
- let files;
118
- try {
119
- files = await readdir(this.persistDir);
120
- }
121
- catch {
122
- return;
123
- }
124
- const jsonFiles = files.filter((f) => f.endsWith(".json"));
125
- if (jsonFiles.length === 0)
126
- return;
127
- // Read all files in parallel instead of sequentially
128
- const results = await Promise.allSettled(jsonFiles.map((f) => readFile(join(this.persistDir, f), "utf-8")));
129
- for (const result of results) {
130
- if (result.status !== "fulfilled")
131
- continue;
132
- try {
133
- const instance = JSON.parse(result.value);
134
- this.instances.set(instance.id, instance);
135
- }
136
- catch {
137
- // Skip corrupted files
138
- }
139
- }
140
- }
141
- // -------------------------------------------------------------------------
142
- // Cleanup
143
- // -------------------------------------------------------------------------
144
- /** Remove a single instance from memory and delete its persist file. */
145
- async remove(id) {
146
- const existed = this.instances.delete(id);
147
- if (existed) {
148
- const target = join(this.persistDir, `${id}.json`);
149
- await unlink(target).catch(() => { });
150
- }
151
- return existed;
152
- }
153
- /**
154
- * Remove multiple instances with chunked file deletion.
155
- * Deletes from in-memory map first (fast), then deletes files in chunks
156
- * to reduce NTFS directory lock contention on Windows (DASH-139).
157
- * Returns the number of instances actually removed.
158
- */
159
- async removeMany(ids) {
160
- const toDelete = [];
161
- for (const id of ids) {
162
- if (this.instances.delete(id)) {
163
- toDelete.push(id);
164
- }
165
- }
166
- if (toDelete.length > 0) {
167
- const CHUNK = 20;
168
- for (let i = 0; i < toDelete.length; i += CHUNK) {
169
- await Promise.all(toDelete.slice(i, i + CHUNK).map((id) => unlink(join(this.persistDir, `${id}.json`)).catch(() => { })));
170
- }
171
- }
172
- return toDelete.length;
173
- }
174
- /**
175
- * Remove multiple instances from the in-memory map only (no file I/O).
176
- * Returns the IDs that were actually removed and their persist file paths,
177
- * so the caller can batch-delete them alongside other files in a single pass.
178
- */
179
- removeManyInMemory(ids) {
180
- const filePaths = [];
181
- let removed = 0;
182
- for (const id of ids) {
183
- if (this.instances.delete(id)) {
184
- removed++;
185
- filePaths.push(join(this.persistDir, `${id}.json`));
186
- }
187
- }
188
- return { removed, filePaths };
189
- }
190
- /** Clear all in-memory instances. Does not delete files. */
191
- clear() {
192
- this.instances.clear();
193
- }
194
- }
195
- //# sourceMappingURL=registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/agents/runtime/registry.ts"],"names":[],"mappings":"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"}
@@ -1,146 +0,0 @@
1
- /**
2
- * Agent Runtime Environment — Resource allocation and tracking.
3
- *
4
- * Tracks aggregate resource usage across all active agents.
5
- * Enforces limits on concurrent agents and total memory.
6
- * Queues spawn requests when resources are exhausted.
7
- */
8
- import { RuntimeError, ErrorCodes } from "./errors.js";
9
- // ---------------------------------------------------------------------------
10
- // Resource pool
11
- // ---------------------------------------------------------------------------
12
- export class ResourcePool {
13
- config;
14
- /** Active agent allocations, keyed by agent ID. */
15
- allocations = new Map();
16
- /** Queued spawn requests waiting for resources, ordered by priority. */
17
- waitQueue = [];
18
- constructor(config) {
19
- this.config = config;
20
- }
21
- // -------------------------------------------------------------------------
22
- // Queries
23
- // -------------------------------------------------------------------------
24
- /** Current number of active agent allocations. */
25
- get activeCount() {
26
- return this.allocations.size;
27
- }
28
- /** Number of queued requests. */
29
- get queueLength() {
30
- return this.waitQueue.length;
31
- }
32
- /** Total memory currently allocated. */
33
- get totalMemoryMB() {
34
- let total = 0;
35
- for (const alloc of this.allocations.values()) {
36
- total += alloc.memoryLimitMB;
37
- }
38
- return total;
39
- }
40
- /** Snapshot of current resource usage. */
41
- snapshot() {
42
- return {
43
- activeAgents: this.activeCount,
44
- maxAgents: this.config.maxConcurrentAgents,
45
- totalMemoryMB: this.totalMemoryMB,
46
- maxMemoryMB: this.config.maxTotalMemoryMB,
47
- queuedRequests: this.queueLength,
48
- };
49
- }
50
- // -------------------------------------------------------------------------
51
- // Allocation
52
- // -------------------------------------------------------------------------
53
- /** Check if resources are available for a given allocation. */
54
- canAllocate(resources) {
55
- if (this.activeCount >= this.config.maxConcurrentAgents)
56
- return false;
57
- if (this.totalMemoryMB + resources.memoryLimitMB > this.config.maxTotalMemoryMB)
58
- return false;
59
- return true;
60
- }
61
- /**
62
- * Reserve resources for an agent. Throws if limits exceeded.
63
- * Call this immediately before spawning.
64
- */
65
- allocate(agentId, resources) {
66
- if (this.allocations.has(agentId)) {
67
- throw new RuntimeError(ErrorCodes.RESOURCE_EXHAUSTED, `Agent ${agentId} already has resources allocated`, false);
68
- }
69
- if (this.activeCount >= this.config.maxConcurrentAgents) {
70
- throw new RuntimeError(ErrorCodes.MAX_AGENTS_REACHED, `Cannot allocate: ${this.activeCount}/${this.config.maxConcurrentAgents} agents active`, true, { activeCount: this.activeCount, max: this.config.maxConcurrentAgents });
71
- }
72
- if (this.totalMemoryMB + resources.memoryLimitMB > this.config.maxTotalMemoryMB) {
73
- throw new RuntimeError(ErrorCodes.MEMORY_LIMIT_EXCEEDED, `Cannot allocate ${resources.memoryLimitMB}MB: ${this.totalMemoryMB}/${this.config.maxTotalMemoryMB}MB used`, true, { requested: resources.memoryLimitMB, used: this.totalMemoryMB, max: this.config.maxTotalMemoryMB });
74
- }
75
- this.allocations.set(agentId, { ...resources });
76
- }
77
- /** Release resources when an agent terminates. Drains the wait queue if possible. */
78
- release(agentId) {
79
- this.allocations.delete(agentId);
80
- this.drainQueue();
81
- }
82
- /** Update an existing allocation (e.g., after resize). */
83
- updateAllocation(agentId, resources) {
84
- const current = this.allocations.get(agentId);
85
- if (!current)
86
- return;
87
- if (resources.memoryLimitMB != null)
88
- current.memoryLimitMB = resources.memoryLimitMB;
89
- if (resources.cpuWeight != null)
90
- current.cpuWeight = resources.cpuWeight;
91
- }
92
- /** Get the allocation for a specific agent. */
93
- getAllocation(agentId) {
94
- return this.allocations.get(agentId);
95
- }
96
- // -------------------------------------------------------------------------
97
- // Wait queue
98
- // -------------------------------------------------------------------------
99
- /**
100
- * Enqueue a spawn request to wait for resources.
101
- * Returns a promise that resolves when resources become available.
102
- */
103
- enqueue(request, priority = 50) {
104
- return new Promise((resolve, reject) => {
105
- this.waitQueue.push({
106
- request,
107
- resolve,
108
- reject,
109
- priority,
110
- enqueuedAt: new Date().toISOString(),
111
- });
112
- // Sort by priority (lower number = higher priority)
113
- this.waitQueue.sort((a, b) => a.priority - b.priority);
114
- });
115
- }
116
- /** Reject all queued requests (e.g., on shutdown). */
117
- rejectAll(reason) {
118
- for (const entry of this.waitQueue) {
119
- entry.reject(new RuntimeError(ErrorCodes.SHUTDOWN_IN_PROGRESS, reason, false));
120
- }
121
- this.waitQueue = [];
122
- }
123
- /** Drain the queue: resolve as many waiting requests as capacity allows. */
124
- drainQueue() {
125
- while (this.waitQueue.length > 0) {
126
- const next = this.waitQueue[0];
127
- const resources = {
128
- memoryLimitMB: this.config.defaultMemoryLimitMB,
129
- cpuWeight: this.config.defaultCpuWeight,
130
- };
131
- if (!this.canAllocate(resources))
132
- break;
133
- this.waitQueue.shift();
134
- next.resolve();
135
- }
136
- }
137
- // -------------------------------------------------------------------------
138
- // Cleanup
139
- // -------------------------------------------------------------------------
140
- /** Clear all allocations and queued requests. For shutdown. */
141
- clear() {
142
- this.allocations.clear();
143
- this.rejectAll("Resource pool cleared");
144
- }
145
- }
146
- //# sourceMappingURL=resources.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/agents/runtime/resources.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- /**
2
- * Agent Runtime Environment — Type definitions.
3
- *
4
- * Defines the core abstractions for agent lifecycle management,
5
- * resource allocation, inter-agent messaging, and driver interface.
6
- */
7
- /** All valid state transitions. */
8
- export const VALID_TRANSITIONS = {
9
- initializing: ["running", "failed"],
10
- running: ["paused", "terminating", "completed", "failed"],
11
- paused: ["resuming", "terminating"],
12
- resuming: ["running", "failed"],
13
- terminating: ["terminated"],
14
- terminated: [],
15
- failed: [],
16
- completed: [],
17
- };
18
- /** Terminal states — no further transitions possible. */
19
- export const TERMINAL_STATES = new Set([
20
- "terminated",
21
- "failed",
22
- "completed",
23
- ]);
24
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/agents/runtime/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,mCAAmC;AACnC,MAAM,CAAC,MAAM,iBAAiB,GAAqC;IACjE,YAAY,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;IACnC,OAAO,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC;IACzD,MAAM,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC/B,WAAW,EAAE,CAAC,YAAY,CAAC;IAC3B,UAAU,EAAE,EAAE;IACd,MAAM,EAAE,EAAE;IACV,SAAS,EAAE,EAAE;CACd,CAAC;AAEF,yDAAyD;AACzD,MAAM,CAAC,MAAM,eAAe,GAA4B,IAAI,GAAG,CAAC;IAC9D,YAAY;IACZ,QAAQ;IACR,WAAW;CACZ,CAAC,CAAC"}
@@ -1,202 +0,0 @@
1
- /**
2
- * Spawn Policy Loader — governs what agent types can be spawned and how many.
3
- *
4
- * Reads brain/templates/spawn-policy.yaml (or instance-specific path).
5
- * Provides checkSpawnPolicy() for the governance gate to call before spawn.
6
- *
7
- * Hand-rolled YAML parser (no external deps).
8
- */
9
- import { readFile } from "node:fs/promises";
10
- import { readFileSync, existsSync } from "node:fs";
11
- import { join } from "node:path";
12
- import { createLogger } from "../utils/logger.js";
13
- const log = createLogger("agents.spawn-policy");
14
- import { BRAIN_DIR } from "../lib/paths.js";
15
- const DEFAULT_POLICY_PATH = join(BRAIN_DIR, "templates", "spawn-policy.yaml");
16
- // ── Cache ────────────────────────────────────────────────────────────────────
17
- let cached = null;
18
- // ── YAML parser ──────────────────────────────────────────────────────────────
19
- function parseSpawnPolicy(raw) {
20
- const lines = raw.split("\n");
21
- let owner = "";
22
- let governedBy = "";
23
- let maxAgents = 4;
24
- let requireOwnerApproval = true;
25
- const allowedTypes = new Map();
26
- const denyTypes = [];
27
- let section = "root";
28
- let currentType = "";
29
- for (const line of lines) {
30
- const trimmed = line.trimEnd();
31
- if (!trimmed || trimmed.match(/^\s*#/))
32
- continue;
33
- const indent = (line.match(/^(\s*)/) ?? ["", ""])[1].length;
34
- // Top-level key: value
35
- if (indent === 0) {
36
- const kv = trimmed.match(/^(\w[\w_]*)\s*:\s*(.+)$/);
37
- if (kv) {
38
- const [, key, val] = kv;
39
- const unquoted = val.replace(/^["']|["']$/g, "").trim();
40
- if (key === "owner")
41
- owner = unquoted;
42
- else if (key === "governed_by")
43
- governedBy = unquoted;
44
- else if (key === "max_agents")
45
- maxAgents = parseInt(unquoted, 10) || 4;
46
- else if (key === "require_owner_approval")
47
- requireOwnerApproval = unquoted === "true";
48
- section = "root";
49
- continue;
50
- }
51
- // Section header
52
- const sectionHeader = trimmed.match(/^(\w[\w_]*)\s*:\s*$/);
53
- if (sectionHeader) {
54
- if (sectionHeader[1] === "allowed_types")
55
- section = "allowed_types";
56
- else if (sectionHeader[1] === "deny_types")
57
- section = "deny_types";
58
- else
59
- section = "root";
60
- continue;
61
- }
62
- }
63
- // Under allowed_types — type name headers (indent 2)
64
- if (section === "allowed_types" && indent >= 2) {
65
- const typeHeader = trimmed.trim().match(/^([\w-]+)\s*:\s*$/);
66
- if (typeHeader) {
67
- currentType = typeHeader[1];
68
- allowedTypes.set(currentType, { max: 1, autoSpawn: false });
69
- section = "allowed_type_entry";
70
- continue;
71
- }
72
- }
73
- // Under a specific allowed type entry (indent 4)
74
- if (section === "allowed_type_entry" && indent >= 4) {
75
- const kv = trimmed.trim().match(/^(\w[\w_]*)\s*:\s*(.+)$/);
76
- if (kv) {
77
- const [, key, val] = kv;
78
- const entry = allowedTypes.get(currentType);
79
- if (entry) {
80
- if (key === "max")
81
- entry.max = parseInt(val, 10) || 1;
82
- else if (key === "auto_spawn")
83
- entry.autoSpawn = val.trim() === "true";
84
- }
85
- continue;
86
- }
87
- // New type header at indent 2 — go back to allowed_types
88
- const typeHeader = trimmed.trim().match(/^([\w-]+)\s*:\s*$/);
89
- if (typeHeader) {
90
- currentType = typeHeader[1];
91
- allowedTypes.set(currentType, { max: 1, autoSpawn: false });
92
- continue;
93
- }
94
- }
95
- // deny_types list items
96
- if (section === "deny_types") {
97
- const listItem = trimmed.match(/^\s+-\s+(.+)$/);
98
- if (listItem) {
99
- denyTypes.push(listItem[1].replace(/^["']|["']$/g, "").trim());
100
- }
101
- }
102
- }
103
- return { owner, governedBy, maxAgents, allowedTypes, denyTypes, requireOwnerApproval };
104
- }
105
- // ── Public API ───────────────────────────────────────────────────────────────
106
- /**
107
- * Load and cache the spawn policy.
108
- */
109
- export async function loadSpawnPolicy(policyPath) {
110
- if (cached)
111
- return cached;
112
- const filePath = policyPath ?? DEFAULT_POLICY_PATH;
113
- try {
114
- const raw = await readFile(filePath, "utf-8");
115
- cached = parseSpawnPolicy(raw);
116
- log.info("Spawn policy loaded", {
117
- maxAgents: cached.maxAgents,
118
- allowedTypes: Array.from(cached.allowedTypes.keys()),
119
- denyTypes: cached.denyTypes,
120
- });
121
- }
122
- catch (err) {
123
- if (err.code === "ENOENT") {
124
- log.warn("No spawn-policy.yaml found — using permissive defaults");
125
- }
126
- else {
127
- log.warn("Failed to parse spawn-policy.yaml", { error: err.message });
128
- }
129
- cached = {
130
- owner: "",
131
- governedBy: "",
132
- maxAgents: 4,
133
- allowedTypes: new Map(),
134
- denyTypes: [],
135
- requireOwnerApproval: false,
136
- };
137
- }
138
- return cached;
139
- }
140
- /**
141
- * Get the cached spawn policy (loads synchronously if not cached).
142
- */
143
- export function getSpawnPolicy() {
144
- if (!cached) {
145
- try {
146
- if (existsSync(DEFAULT_POLICY_PATH)) {
147
- const raw = readFileSync(DEFAULT_POLICY_PATH, "utf-8");
148
- cached = parseSpawnPolicy(raw);
149
- }
150
- }
151
- catch {
152
- // Fall through to defaults
153
- }
154
- if (!cached) {
155
- cached = {
156
- owner: "",
157
- governedBy: "",
158
- maxAgents: 4,
159
- allowedTypes: new Map(),
160
- denyTypes: [],
161
- requireOwnerApproval: false,
162
- };
163
- }
164
- }
165
- return cached;
166
- }
167
- /**
168
- * Check whether spawning an agent of the given type is allowed.
169
- *
170
- * @param agentType - The agent type to spawn (e.g. "administration", "brand")
171
- * @param currentCount - Total number of currently running agents
172
- * @param typeCount - Number of currently running agents of this specific type
173
- */
174
- export function checkSpawnPolicy(agentType, currentCount, typeCount) {
175
- const policy = getSpawnPolicy();
176
- // Check deny list
177
- if (policy.denyTypes.includes(agentType)) {
178
- return { allowed: false, reason: `Agent type "${agentType}" is denied by spawn policy` };
179
- }
180
- // Check global max
181
- if (currentCount >= policy.maxAgents) {
182
- return { allowed: false, reason: `Max agents reached (${policy.maxAgents})` };
183
- }
184
- // Check type-specific max
185
- const typeConfig = policy.allowedTypes.get(agentType);
186
- if (typeConfig && typeCount >= typeConfig.max) {
187
- return { allowed: false, reason: `Max "${agentType}" agents reached (${typeConfig.max})` };
188
- }
189
- // If the type isn't in allowed_types and the map is non-empty, it's implicitly denied
190
- if (policy.allowedTypes.size > 0 && !typeConfig) {
191
- return { allowed: false, reason: `Agent type "${agentType}" is not in allowed_types` };
192
- }
193
- return { allowed: true };
194
- }
195
- /**
196
- * Force reload of spawn policy.
197
- */
198
- export async function reloadSpawnPolicy(policyPath) {
199
- cached = null;
200
- return loadSpawnPolicy(policyPath);
201
- }
202
- //# sourceMappingURL=spawn-policy.js.map