@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.
- package/dictionary.json +2 -2
- package/dist/activity/log.js +2 -2
- package/dist/activity/log.js.map +1 -1
- package/dist/agents/governed-spawn.d.ts.map +1 -1
- package/dist/cli.js +101 -11
- package/dist/cli.js.map +1 -1
- package/dist/extensions/cache.d.ts +57 -0
- package/dist/extensions/cache.d.ts.map +1 -0
- package/dist/extensions/cache.js +173 -0
- package/dist/extensions/cache.js.map +1 -0
- package/dist/extensions/client.d.ts +55 -0
- package/dist/extensions/client.d.ts.map +1 -0
- package/dist/extensions/client.js +120 -0
- package/dist/extensions/client.js.map +1 -0
- package/dist/extensions/index.d.ts +13 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +12 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/loader.d.ts +50 -0
- package/dist/extensions/loader.d.ts.map +1 -0
- package/dist/extensions/loader.js +166 -0
- package/dist/extensions/loader.js.map +1 -0
- package/dist/extensions/manifest.d.ts +38 -0
- package/dist/extensions/manifest.d.ts.map +1 -0
- package/dist/extensions/manifest.js +17 -0
- package/dist/extensions/manifest.js.map +1 -0
- package/dist/extensions/stubs.d.ts +27 -0
- package/dist/extensions/stubs.d.ts.map +1 -0
- package/dist/extensions/stubs.js +45 -0
- package/dist/extensions/stubs.js.map +1 -0
- package/dist/lib/audit.js +2 -2
- package/dist/lib/audit.js.map +1 -1
- package/dist/lib/brain-migrate.d.ts +21 -0
- package/dist/lib/brain-migrate.d.ts.map +1 -0
- package/dist/lib/brain-migrate.js +137 -0
- package/dist/lib/brain-migrate.js.map +1 -0
- package/dist/lib/paths.d.ts +27 -0
- package/dist/lib/paths.d.ts.map +1 -1
- package/dist/lib/paths.js +65 -0
- package/dist/lib/paths.js.map +1 -1
- package/dist/llm/call-log.d.ts +40 -0
- package/dist/llm/call-log.d.ts.map +1 -0
- package/dist/llm/call-log.js +35 -0
- package/dist/llm/call-log.js.map +1 -0
- package/dist/llm/complete.d.ts +6 -0
- package/dist/llm/complete.d.ts.map +1 -1
- package/dist/llm/complete.js +27 -0
- package/dist/llm/complete.js.map +1 -1
- package/dist/mcp-server.js +118 -2
- package/dist/mcp-server.js.map +1 -1
- package/dist/memory/file-backed.d.ts +4 -0
- package/dist/memory/file-backed.d.ts.map +1 -1
- package/dist/memory/file-backed.js +4 -0
- package/dist/memory/file-backed.js.map +1 -1
- package/dist/memory/vector-index.d.ts +4 -12
- package/dist/memory/vector-index.d.ts.map +1 -1
- package/dist/memory/vector-index.js +11 -93
- package/dist/memory/vector-index.js.map +1 -1
- package/dist/search/brain-docs.d.ts +17 -7
- package/dist/search/brain-docs.d.ts.map +1 -1
- package/dist/search/brain-docs.js +170 -52
- package/dist/search/brain-docs.js.map +1 -1
- package/dist/search/brain-rag.d.ts +45 -0
- package/dist/search/brain-rag.d.ts.map +1 -0
- package/dist/search/brain-rag.js +275 -0
- package/dist/search/brain-rag.js.map +1 -0
- package/dist/search/chunker.d.ts +24 -0
- package/dist/search/chunker.d.ts.map +1 -0
- package/dist/search/chunker.js +95 -0
- package/dist/search/chunker.js.map +1 -0
- package/dist/search/embedder.d.ts +16 -0
- package/dist/search/embedder.d.ts.map +1 -0
- package/dist/search/embedder.js +108 -0
- package/dist/search/embedder.js.map +1 -0
- package/dist/search/file-watcher.d.ts +11 -0
- package/dist/search/file-watcher.d.ts.map +1 -0
- package/dist/search/file-watcher.js +86 -0
- package/dist/search/file-watcher.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +814 -472
- package/dist/server.js.map +1 -1
- package/dist/sessions/store.d.ts +9 -0
- package/dist/sessions/store.d.ts.map +1 -1
- package/dist/sessions/store.js.map +1 -1
- package/dist/settings.d.ts +26 -0
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +78 -2
- package/dist/settings.js.map +1 -1
- package/dist/tracing/init.d.ts +1 -1
- package/dist/tracing/init.d.ts.map +1 -1
- package/dist/utils/logger.js +2 -2
- package/dist/utils/logger.js.map +1 -1
- package/module-tiers.json +164 -0
- package/package.json +9 -13
- package/public/avatar/cache/1184385ec5522b57.mp4 +0 -0
- package/public/avatar/cache/1f15f6a1ebd7e439.mp4 +0 -0
- package/public/avatar/cache/2c7e47ff0bdeb8d1.mp4 +0 -0
- package/public/avatar/cache/5f308566f7abb8f2.mp4 +0 -0
- package/public/avatar/cache/62f9cfba848d724e.mp4 +0 -0
- package/public/avatar/cache/6d64e657e6bf2aab.mp4 +0 -0
- package/public/avatar/cache/763ad0349e0b6f26.mp4 +0 -0
- package/public/avatar/cache/81a516cfd461b2b9.mp4 +0 -0
- package/public/avatar/cache/9366de15fd6910ca.mp4 +0 -0
- package/public/avatar/cache/ade41a846b283895.mp4 +0 -0
- package/public/avatar/cache/b6066e5c65383eec.mp4 +0 -0
- package/public/avatar/cache/edadb75d37891fc7.mp4 +0 -0
- package/public/avatar/cache/f0ae159640621dd9.mp4 +0 -0
- package/public/avatar/cache/fc2e5419adf29d96.mp4 +0 -0
- package/public/index.html +379 -59
- package/dist/agents/autonomous.js +0 -749
- package/dist/agents/autonomous.js.map +0 -1
- package/dist/agents/commit.js +0 -113
- package/dist/agents/commit.js.map +0 -1
- package/dist/agents/continue.js +0 -158
- package/dist/agents/continue.js.map +0 -1
- package/dist/agents/cooldown.js +0 -397
- package/dist/agents/cooldown.js.map +0 -1
- package/dist/agents/dedup-guard.js +0 -131
- package/dist/agents/dedup-guard.js.map +0 -1
- package/dist/agents/feed.js +0 -176
- package/dist/agents/feed.js.map +0 -1
- package/dist/agents/governance.js +0 -292
- package/dist/agents/governance.js.map +0 -1
- package/dist/agents/governed-spawn.js +0 -192
- package/dist/agents/governed-spawn.js.map +0 -1
- package/dist/agents/heartbeat.js +0 -324
- package/dist/agents/heartbeat.js.map +0 -1
- package/dist/agents/instance-manager.js +0 -850
- package/dist/agents/instance-manager.js.map +0 -1
- package/dist/agents/issue-reporter.js +0 -123
- package/dist/agents/issue-reporter.js.map +0 -1
- package/dist/agents/issues.js +0 -141
- package/dist/agents/issues.js.map +0 -1
- package/dist/agents/locks.js +0 -234
- package/dist/agents/locks.js.map +0 -1
- package/dist/agents/memory.js +0 -93
- package/dist/agents/memory.js.map +0 -1
- package/dist/agents/monitor.js +0 -235
- package/dist/agents/monitor.js.map +0 -1
- package/dist/agents/orchestration.js +0 -715
- package/dist/agents/orchestration.js.map +0 -1
- package/dist/agents/recover.js +0 -166
- package/dist/agents/recover.js.map +0 -1
- package/dist/agents/reflection.js +0 -199
- package/dist/agents/reflection.js.map +0 -1
- package/dist/agents/runtime/bus.js +0 -174
- package/dist/agents/runtime/bus.js.map +0 -1
- package/dist/agents/runtime/config.js +0 -101
- package/dist/agents/runtime/config.js.map +0 -1
- package/dist/agents/runtime/driver.js +0 -214
- package/dist/agents/runtime/driver.js.map +0 -1
- package/dist/agents/runtime/errors.js +0 -40
- package/dist/agents/runtime/errors.js.map +0 -1
- package/dist/agents/runtime/index.js +0 -54
- package/dist/agents/runtime/index.js.map +0 -1
- package/dist/agents/runtime/lifecycle.js +0 -116
- package/dist/agents/runtime/lifecycle.js.map +0 -1
- package/dist/agents/runtime/manager.js +0 -948
- package/dist/agents/runtime/manager.js.map +0 -1
- package/dist/agents/runtime/registry.js +0 -195
- package/dist/agents/runtime/registry.js.map +0 -1
- package/dist/agents/runtime/resources.js +0 -146
- package/dist/agents/runtime/resources.js.map +0 -1
- package/dist/agents/runtime/types.js +0 -24
- package/dist/agents/runtime/types.js.map +0 -1
- package/dist/agents/spawn-policy.js +0 -202
- package/dist/agents/spawn-policy.js.map +0 -1
- package/dist/agents/spawn.js +0 -970
- package/dist/agents/spawn.js.map +0 -1
- package/dist/agents/triage.js +0 -81
- package/dist/agents/triage.js.map +0 -1
- package/dist/agents/workflow.js +0 -543
- package/dist/agents/workflow.js.map +0 -1
- package/dist/avatar/client.js +0 -172
- package/dist/avatar/client.js.map +0 -1
- package/dist/avatar/sidecar.js +0 -125
- package/dist/avatar/sidecar.js.map +0 -1
- package/dist/browser/sessions.js +0 -122
- package/dist/browser/sessions.js.map +0 -1
- package/dist/capabilities/definitions/browser.js +0 -242
- package/dist/capabilities/definitions/browser.js.map +0 -1
- package/dist/channels/whatsapp.js +0 -200
- package/dist/channels/whatsapp.js.map +0 -1
- package/dist/credentials/store.js +0 -189
- package/dist/credentials/store.js.map +0 -1
- package/dist/files/deep-index.js +0 -337
- package/dist/files/deep-index.js.map +0 -1
- package/dist/files/extract.js +0 -33
- package/dist/files/extract.js.map +0 -1
- package/dist/files/gdrive.js +0 -246
- package/dist/files/gdrive.js.map +0 -1
- package/dist/github/client.js +0 -408
- package/dist/github/client.js.map +0 -1
- package/dist/github/commit-analysis.js +0 -276
- package/dist/github/commit-analysis.js.map +0 -1
- package/dist/github/contributor-stats.js +0 -119
- package/dist/github/contributor-stats.js.map +0 -1
- package/dist/github/issue-sla.js +0 -220
- package/dist/github/issue-sla.js.map +0 -1
- package/dist/github/issue-triage.js +0 -286
- package/dist/github/issue-triage.js.map +0 -1
- package/dist/github/pr-readiness.js +0 -197
- package/dist/github/pr-readiness.js.map +0 -1
- package/dist/github/pr-review.js +0 -410
- package/dist/github/pr-review.js.map +0 -1
- package/dist/github/release-notes.js +0 -227
- package/dist/github/release-notes.js.map +0 -1
- package/dist/github/repo-health.js +0 -303
- package/dist/github/repo-health.js.map +0 -1
- package/dist/github/retry.js +0 -117
- package/dist/github/retry.js.map +0 -1
- package/dist/github/types.js +0 -8
- package/dist/github/types.js.map +0 -1
- package/dist/github/webhooks.js +0 -153
- package/dist/github/webhooks.js.map +0 -1
- package/dist/google/auth.js +0 -325
- package/dist/google/auth.js.map +0 -1
- package/dist/google/calendar-timer.js +0 -91
- package/dist/google/calendar-timer.js.map +0 -1
- package/dist/google/calendar.js +0 -270
- package/dist/google/calendar.js.map +0 -1
- package/dist/google/docs.js +0 -309
- package/dist/google/docs.js.map +0 -1
- package/dist/google/gmail-send.js +0 -219
- package/dist/google/gmail-send.js.map +0 -1
- package/dist/google/gmail-timer.js +0 -223
- package/dist/google/gmail-timer.js.map +0 -1
- package/dist/google/gmail.js +0 -470
- package/dist/google/gmail.js.map +0 -1
- package/dist/google/plugin.js +0 -169
- package/dist/google/plugin.js.map +0 -1
- package/dist/google/tasks-timer.js +0 -107
- package/dist/google/tasks-timer.js.map +0 -1
- package/dist/google/tasks.js +0 -331
- package/dist/google/tasks.js.map +0 -1
- package/dist/google/temporal.js +0 -176
- package/dist/google/temporal.js.map +0 -1
- package/dist/integrations/gate.js +0 -100
- package/dist/integrations/gate.js.map +0 -1
- package/dist/integrations/github.js +0 -331
- package/dist/integrations/github.js.map +0 -1
- package/dist/integrations/google-tasks.js +0 -432
- package/dist/integrations/google-tasks.js.map +0 -1
- package/dist/mdns.js +0 -110
- package/dist/mdns.js.map +0 -1
- package/dist/notifications/channel.js +0 -83
- package/dist/notifications/channel.js.map +0 -1
- package/dist/notifications/channels/adapter.js +0 -55
- package/dist/notifications/channels/adapter.js.map +0 -1
- package/dist/notifications/channels/index.js +0 -6
- package/dist/notifications/channels/index.js.map +0 -1
- package/dist/notifications/channels/log.js +0 -29
- package/dist/notifications/channels/log.js.map +0 -1
- package/dist/notifications/email.js +0 -72
- package/dist/notifications/email.js.map +0 -1
- package/dist/notifications/engine.js +0 -198
- package/dist/notifications/engine.js.map +0 -1
- package/dist/notifications/index.js +0 -24
- package/dist/notifications/index.js.map +0 -1
- package/dist/notifications/phone.js +0 -48
- package/dist/notifications/phone.js.map +0 -1
- package/dist/notifications/sms.js +0 -65
- package/dist/notifications/sms.js.map +0 -1
- package/dist/notifications/types.js +0 -14
- package/dist/notifications/types.js.map +0 -1
- package/dist/notifications/webhook.js +0 -65
- package/dist/notifications/webhook.js.map +0 -1
- package/dist/resend/inbox.js +0 -199
- package/dist/resend/inbox.js.map +0 -1
- package/dist/resend/webhooks.js +0 -244
- package/dist/resend/webhooks.js.map +0 -1
- package/dist/search/browse.js +0 -225
- package/dist/search/browse.js.map +0 -1
- package/dist/search/perplexity.js +0 -41
- package/dist/search/perplexity.js.map +0 -1
- package/dist/slack/channels.js +0 -277
- package/dist/slack/channels.js.map +0 -1
- package/dist/slack/client.js +0 -468
- package/dist/slack/client.js.map +0 -1
- package/dist/slack/retry.js +0 -100
- package/dist/slack/retry.js.map +0 -1
- package/dist/slack/types.js +0 -52
- package/dist/slack/types.js.map +0 -1
- package/dist/slack/webhooks.js +0 -285
- package/dist/slack/webhooks.js.map +0 -1
- package/dist/stt/client.js +0 -66
- package/dist/stt/client.js.map +0 -1
- package/dist/stt/sidecar.js +0 -115
- package/dist/stt/sidecar.js.map +0 -1
- package/dist/tracing/bridge.js +0 -70
- package/dist/tracing/bridge.js.map +0 -1
- package/dist/tracing/correlation.js +0 -49
- package/dist/tracing/correlation.js.map +0 -1
- package/dist/tracing/index.js +0 -18
- package/dist/tracing/index.js.map +0 -1
- package/dist/tracing/init.js +0 -81
- package/dist/tracing/init.js.map +0 -1
- package/dist/tracing/instrument.js +0 -145
- package/dist/tracing/instrument.js.map +0 -1
- package/dist/tracing/middleware.js +0 -69
- package/dist/tracing/middleware.js.map +0 -1
- package/dist/tracing/tracer.js +0 -327
- package/dist/tracing/tracer.js.map +0 -1
- package/dist/tts/client.js +0 -48
- package/dist/tts/client.js.map +0 -1
- package/dist/tts/sidecar.js +0 -148
- package/dist/tts/sidecar.js.map +0 -1
- package/dist/twilio/call.js +0 -79
- package/dist/twilio/call.js.map +0 -1
- package/dist/vault/matcher.js +0 -197
- package/dist/vault/matcher.js.map +0 -1
- package/dist/vault/personal.js +0 -163
- package/dist/vault/personal.js.map +0 -1
- package/dist/vault/policy.js +0 -159
- package/dist/vault/policy.js.map +0 -1
- package/dist/vault/store.js +0 -122
- package/dist/vault/store.js.map +0 -1
- package/dist/vault/transfer.js +0 -188
- package/dist/vault/transfer.js.map +0 -1
- package/dist/volumes/index.js +0 -2
- package/dist/volumes/index.js.map +0 -1
- package/dist/volumes/manager.js +0 -462
- package/dist/volumes/manager.js.map +0 -1
- package/dist/volumes/types.js +0 -8
- package/dist/volumes/types.js.map +0 -1
- package/dist/webhooks/config.js +0 -214
- package/dist/webhooks/config.js.map +0 -1
- package/dist/webhooks/event-log.js +0 -132
- package/dist/webhooks/event-log.js.map +0 -1
- package/dist/webhooks/handler.js +0 -103
- package/dist/webhooks/handler.js.map +0 -1
- package/dist/webhooks/handlers.js +0 -231
- package/dist/webhooks/handlers.js.map +0 -1
- package/dist/webhooks/index.js +0 -33
- package/dist/webhooks/index.js.map +0 -1
- package/dist/webhooks/mount.js +0 -400
- package/dist/webhooks/mount.js.map +0 -1
- package/dist/webhooks/registry.js +0 -143
- package/dist/webhooks/registry.js.map +0 -1
- package/dist/webhooks/relay.js +0 -53
- package/dist/webhooks/relay.js.map +0 -1
- package/dist/webhooks/retry.js +0 -270
- package/dist/webhooks/retry.js.map +0 -1
- package/dist/webhooks/router.js +0 -290
- package/dist/webhooks/router.js.map +0 -1
- package/dist/webhooks/twilio.js +0 -129
- package/dist/webhooks/twilio.js.map +0 -1
- package/dist/webhooks/types.js +0 -8
- package/dist/webhooks/types.js.map +0 -1
- package/dist/webhooks/verify.js +0 -154
- 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":"AAAA;;;;;;GAMG;AASH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvD,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,OAAO,YAAY;IACN,MAAM,CAAgB;IAEvC,mDAAmD;IAC3C,WAAW,GAAG,IAAI,GAAG,EAA8B,CAAC;IAE5D,wEAAwE;IAChE,SAAS,GAMZ,EAAE,CAAC;IAER,YAAY,MAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,4EAA4E;IAC5E,UAAU;IACV,4EAA4E;IAE5E,kDAAkD;IAClD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,iCAAiC;IACjC,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,wCAAwC;IACxC,IAAI,aAAa;QACf,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,KAAK,IAAI,KAAK,CAAC,aAAa,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0CAA0C;IAC1C,QAAQ;QACN,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,WAAW;YAC9B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB;YAC1C,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;YACzC,cAAc,EAAE,IAAI,CAAC,WAAW;SACjC,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,aAAa;IACb,4EAA4E;IAE5E,+DAA+D;IAC/D,WAAW,CAAC,SAA6B;QACvC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB;YAAE,OAAO,KAAK,CAAC;QACtE,IAAI,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB;YAAE,OAAO,KAAK,CAAC;QAC9F,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,OAAe,EAAE,SAA6B;QACrD,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,YAAY,CACpB,UAAU,CAAC,kBAAkB,EAC7B,SAAS,OAAO,kCAAkC,EAClD,KAAK,CACN,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACxD,MAAM,IAAI,YAAY,CACpB,UAAU,CAAC,kBAAkB,EAC7B,oBAAoB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,gBAAgB,EACvF,IAAI,EACJ,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CACxE,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAChF,MAAM,IAAI,YAAY,CACpB,UAAU,CAAC,qBAAqB,EAChC,mBAAmB,SAAS,CAAC,aAAa,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,SAAS,EAC5G,IAAI,EACJ,EAAE,SAAS,EAAE,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CACpG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,qFAAqF;IACrF,OAAO,CAAC,OAAe;QACrB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,0DAA0D;IAC1D,gBAAgB,CAAC,OAAe,EAAE,SAAsC;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,SAAS,CAAC,aAAa,IAAI,IAAI;YAAE,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC;QACrF,IAAI,SAAS,CAAC,SAAS,IAAI,IAAI;YAAE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IAC3E,CAAC;IAED,+CAA+C;IAC/C,aAAa,CAAC,OAAe;QAC3B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,4EAA4E;IAC5E,aAAa;IACb,4EAA4E;IAE5E;;;OAGG;IACH,OAAO,CAAC,OAAqB,EAAE,WAAmB,EAAE;QAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAClB,OAAO;gBACP,OAAO;gBACP,MAAM;gBACN,QAAQ;gBACR,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC,CAAC;YAEH,oDAAoD;YACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sDAAsD;IACtD,SAAS,CAAC,MAAc;QACtB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnC,KAAK,CAAC,MAAM,CACV,IAAI,YAAY,CAAC,UAAU,CAAC,oBAAoB,EAAE,MAAM,EAAE,KAAK,CAAC,CACjE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,4EAA4E;IACpE,UAAU;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,SAAS,GAAuB;gBACpC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;gBAC/C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;aACxC,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;gBAAE,MAAM;YAExC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,UAAU;IACV,4EAA4E;IAE5E,+DAA+D;IAC/D,KAAK;QACH,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IAC1C,CAAC;CACF"}
|
|
@@ -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
|