@action-llama/action-llama 0.11.1 → 0.11.3
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/AGENTS.md +2 -2
- package/README.md +2 -1
- package/dist/agents/container-entry.d.ts.map +1 -1
- package/dist/agents/container-entry.js +9 -0
- package/dist/agents/container-entry.js.map +1 -1
- package/dist/agents/container-runner.d.ts +1 -1
- package/dist/agents/container-runner.d.ts.map +1 -1
- package/dist/agents/container-runner.js +11 -16
- package/dist/agents/container-runner.js.map +1 -1
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +26 -1
- package/dist/agents/runner.js.map +1 -1
- package/dist/cli/commands/chat.js +3 -3
- package/dist/cli/commands/chat.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +5 -2
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/logs.d.ts.map +1 -1
- package/dist/cli/commands/logs.js +40 -22
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +8 -4
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/start.d.ts +1 -0
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +5 -1
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.d.ts +1 -0
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +166 -55
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/stop.d.ts +4 -0
- package/dist/cli/commands/stop.d.ts.map +1 -0
- package/dist/cli/commands/stop.js +27 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/main.js +12 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/resolve-target.d.ts +27 -0
- package/dist/cli/resolve-target.d.ts.map +1 -0
- package/dist/cli/resolve-target.js +42 -0
- package/dist/cli/resolve-target.js.map +1 -0
- package/dist/cloud/aws/constants.d.ts +2 -2
- package/dist/cloud/aws/constants.d.ts.map +1 -1
- package/dist/cloud/aws/constants.js +2 -2
- package/dist/cloud/aws/constants.js.map +1 -1
- package/dist/cloud/aws/deploy.d.ts +3 -2
- package/dist/cloud/aws/deploy.d.ts.map +1 -1
- package/dist/cloud/aws/deploy.js +8 -29
- package/dist/cloud/aws/deploy.js.map +1 -1
- package/dist/cloud/aws/iam.d.ts +13 -0
- package/dist/cloud/aws/iam.d.ts.map +1 -1
- package/dist/cloud/aws/iam.js +70 -0
- package/dist/cloud/aws/iam.js.map +1 -1
- package/dist/cloud/aws/provider.d.ts +11 -0
- package/dist/cloud/aws/provider.d.ts.map +1 -1
- package/dist/cloud/aws/provider.js +52 -2
- package/dist/cloud/aws/provider.js.map +1 -1
- package/dist/cloud/aws/provision.d.ts.map +1 -1
- package/dist/cloud/aws/provision.js +54 -20
- package/dist/cloud/aws/provision.js.map +1 -1
- package/dist/cloud/gcp/provider.d.ts +4 -0
- package/dist/cloud/gcp/provider.d.ts.map +1 -1
- package/dist/cloud/gcp/provider.js +26 -0
- package/dist/cloud/gcp/provider.js.map +1 -1
- package/dist/cloud/provider.d.ts +6 -0
- package/dist/cloud/provider.d.ts.map +1 -1
- package/dist/cloud/provider.js.map +1 -1
- package/dist/docker/ecs-runtime.d.ts +2 -2
- package/dist/docker/ecs-runtime.d.ts.map +1 -1
- package/dist/docker/ecs-runtime.js +9 -4
- package/dist/docker/ecs-runtime.js.map +1 -1
- package/dist/docker/image.js +1 -1
- package/dist/docker/image.js.map +1 -1
- package/dist/docker/runtime.d.ts +4 -3
- package/dist/docker/runtime.d.ts.map +1 -1
- package/dist/gateway/call-store.d.ts +6 -1
- package/dist/gateway/call-store.d.ts.map +1 -1
- package/dist/gateway/call-store.js +25 -1
- package/dist/gateway/call-store.js.map +1 -1
- package/dist/gateway/container-registry.d.ts +25 -0
- package/dist/gateway/container-registry.d.ts.map +1 -0
- package/dist/gateway/container-registry.js +43 -0
- package/dist/gateway/container-registry.js.map +1 -0
- package/dist/gateway/index.d.ts +6 -2
- package/dist/gateway/index.d.ts.map +1 -1
- package/dist/gateway/index.js +19 -10
- package/dist/gateway/index.js.map +1 -1
- package/dist/gateway/lock-store.d.ts +7 -1
- package/dist/gateway/lock-store.d.ts.map +1 -1
- package/dist/gateway/lock-store.js +37 -7
- package/dist/gateway/lock-store.js.map +1 -1
- package/dist/gateway/routes/calls.d.ts +2 -2
- package/dist/gateway/routes/calls.d.ts.map +1 -1
- package/dist/gateway/routes/calls.js.map +1 -1
- package/dist/gateway/routes/control.d.ts +1 -0
- package/dist/gateway/routes/control.d.ts.map +1 -1
- package/dist/gateway/routes/control.js +9 -0
- package/dist/gateway/routes/control.js.map +1 -1
- package/dist/gateway/routes/dashboard.d.ts +6 -0
- package/dist/gateway/routes/dashboard.d.ts.map +1 -1
- package/dist/gateway/routes/dashboard.js +14 -8
- package/dist/gateway/routes/dashboard.js.map +1 -1
- package/dist/gateway/routes/locks.d.ts +2 -2
- package/dist/gateway/routes/locks.d.ts.map +1 -1
- package/dist/gateway/routes/locks.js.map +1 -1
- package/dist/gateway/routes/shutdown.d.ts +2 -2
- package/dist/gateway/routes/shutdown.d.ts.map +1 -1
- package/dist/gateway/routes/shutdown.js +1 -1
- package/dist/gateway/routes/shutdown.js.map +1 -1
- package/dist/gateway/routes/signals.d.ts +2 -2
- package/dist/gateway/routes/signals.d.ts.map +1 -1
- package/dist/gateway/routes/signals.js.map +1 -1
- package/dist/preflight/interpolate.d.ts +10 -0
- package/dist/preflight/interpolate.d.ts.map +1 -0
- package/dist/preflight/interpolate.js +33 -0
- package/dist/preflight/interpolate.js.map +1 -0
- package/dist/preflight/providers/git-clone.d.ts +3 -0
- package/dist/preflight/providers/git-clone.d.ts.map +1 -0
- package/dist/preflight/providers/git-clone.js +36 -0
- package/dist/preflight/providers/git-clone.js.map +1 -0
- package/dist/preflight/providers/http.d.ts +3 -0
- package/dist/preflight/providers/http.d.ts.map +1 -0
- package/dist/preflight/providers/http.js +36 -0
- package/dist/preflight/providers/http.js.map +1 -0
- package/dist/preflight/providers/shell.d.ts +3 -0
- package/dist/preflight/providers/shell.d.ts.map +1 -0
- package/dist/preflight/providers/shell.js +28 -0
- package/dist/preflight/providers/shell.js.map +1 -0
- package/dist/preflight/registry.d.ts +4 -0
- package/dist/preflight/registry.d.ts.map +1 -0
- package/dist/preflight/registry.js +20 -0
- package/dist/preflight/registry.js.map +1 -0
- package/dist/preflight/runner.d.ts +7 -0
- package/dist/preflight/runner.d.ts.map +1 -0
- package/dist/preflight/runner.js +28 -0
- package/dist/preflight/runner.js.map +1 -0
- package/dist/preflight/schema.d.ts +21 -0
- package/dist/preflight/schema.d.ts.map +1 -0
- package/dist/preflight/schema.js +9 -0
- package/dist/preflight/schema.js.map +1 -0
- package/dist/scheduler/event-queue.d.ts +8 -15
- package/dist/scheduler/event-queue.d.ts.map +1 -1
- package/dist/scheduler/event-queue.js +33 -15
- package/dist/scheduler/event-queue.js.map +1 -1
- package/dist/scheduler/execution.d.ts +50 -0
- package/dist/scheduler/execution.d.ts.map +1 -0
- package/dist/scheduler/execution.js +106 -0
- package/dist/scheduler/execution.js.map +1 -0
- package/dist/scheduler/index.d.ts +2 -1
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +91 -179
- package/dist/scheduler/index.js.map +1 -1
- package/dist/scheduler/runner-pool.d.ts +6 -16
- package/dist/scheduler/runner-pool.d.ts.map +1 -1
- package/dist/scheduler/runner-pool.js +15 -26
- package/dist/scheduler/runner-pool.js.map +1 -1
- package/dist/setup/scaffold.d.ts.map +1 -1
- package/dist/setup/scaffold.js +2 -1
- package/dist/setup/scaffold.js.map +1 -1
- package/dist/shared/config.d.ts +2 -0
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/shared/config.js +6 -3
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/paths.js +1 -1
- package/dist/shared/paths.js.map +1 -1
- package/dist/shared/state-store-dynamo.d.ts +39 -0
- package/dist/shared/state-store-dynamo.d.ts.map +1 -0
- package/dist/shared/state-store-dynamo.js +143 -0
- package/dist/shared/state-store-dynamo.js.map +1 -0
- package/dist/shared/state-store-sqlite.d.ts +28 -0
- package/dist/shared/state-store-sqlite.d.ts.map +1 -0
- package/dist/shared/state-store-sqlite.js +78 -0
- package/dist/shared/state-store-sqlite.js.map +1 -0
- package/dist/shared/state-store.d.ts +51 -0
- package/dist/shared/state-store.d.ts.map +1 -0
- package/dist/shared/state-store.js +31 -0
- package/dist/shared/state-store.js.map +1 -0
- package/dist/webhooks/providers/github.d.ts.map +1 -1
- package/dist/webhooks/providers/github.js +3 -0
- package/dist/webhooks/providers/github.js.map +1 -1
- package/package.json +6 -2
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Preflight step types and provider interface.
|
|
3
|
+
*
|
|
4
|
+
* Preflight steps run mechanical data-staging tasks (clone repos, fetch URLs,
|
|
5
|
+
* run shell commands) inside the container after credentials are loaded but
|
|
6
|
+
* before the LLM session starts. ACTIONS.md references the staged files.
|
|
7
|
+
*/
|
|
8
|
+
export interface PreflightStep {
|
|
9
|
+
provider: string;
|
|
10
|
+
required?: boolean;
|
|
11
|
+
params: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
export interface PreflightContext {
|
|
14
|
+
env: Record<string, string>;
|
|
15
|
+
logger: (level: string, msg: string, data?: Record<string, any>) => void;
|
|
16
|
+
}
|
|
17
|
+
export interface PreflightProvider {
|
|
18
|
+
id: string;
|
|
19
|
+
run(params: Record<string, unknown>, ctx: PreflightContext): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/preflight/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;CAC1E;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Preflight step types and provider interface.
|
|
3
|
+
*
|
|
4
|
+
* Preflight steps run mechanical data-staging tasks (clone repos, fetch URLs,
|
|
5
|
+
* run shell commands) inside the container after credentials are loaded but
|
|
6
|
+
* before the LLM session starts. ACTIONS.md references the staged files.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/preflight/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
agentType: string;
|
|
3
|
-
text: string;
|
|
4
|
-
timestamp: string;
|
|
5
|
-
}
|
|
6
|
-
export type EventListener = (event: QueuedEvent) => void;
|
|
7
|
-
export declare class EventQueue {
|
|
8
|
-
private listeners;
|
|
9
|
-
onEvent(listener: EventListener): void;
|
|
10
|
-
push(event: QueuedEvent): void;
|
|
11
|
-
}
|
|
1
|
+
import type { StateStore } from "../shared/state-store.js";
|
|
12
2
|
export interface QueuedWorkItem<T> {
|
|
13
3
|
context: T;
|
|
14
4
|
receivedAt: Date;
|
|
@@ -20,14 +10,17 @@ export interface EnqueueResult<T> {
|
|
|
20
10
|
export declare class WorkQueue<T> {
|
|
21
11
|
private queues;
|
|
22
12
|
private maxSize;
|
|
23
|
-
|
|
13
|
+
private store?;
|
|
14
|
+
constructor(maxSize?: number, store?: StateStore);
|
|
15
|
+
/** Hydrate in-memory state from the persistent store. */
|
|
16
|
+
init(): Promise<void>;
|
|
24
17
|
enqueue(agentName: string, context: T, receivedAt?: Date): EnqueueResult<T>;
|
|
25
18
|
dequeue(agentName: string): QueuedWorkItem<T> | undefined;
|
|
26
19
|
size(agentName: string): number;
|
|
27
20
|
clear(agentName: string): void;
|
|
28
21
|
clearAll(): void;
|
|
22
|
+
/** Clear in-memory queues only — persistent state survives for the next instance. */
|
|
23
|
+
clearInMemory(): void;
|
|
24
|
+
private persist;
|
|
29
25
|
}
|
|
30
|
-
/** @deprecated Use WorkQueue instead */
|
|
31
|
-
export declare const WebhookEventQueue: typeof WorkQueue;
|
|
32
|
-
export type QueuedWebhookEvent<T> = QueuedWorkItem<T>;
|
|
33
26
|
//# sourceMappingURL=event-queue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-queue.d.ts","sourceRoot":"","sources":["../../src/scheduler/event-queue.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"event-queue.d.ts","sourceRoot":"","sources":["../../src/scheduler/event-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,OAAO,EAAE,CAAC,CAAC;IACX,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;CAC7B;AAID,qBAAa,SAAS,CAAC,CAAC;IACtB,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAC,CAAa;gBAEf,OAAO,SAAM,EAAE,KAAK,CAAC,EAAE,UAAU;IAK7C,yDAAyD;IACnD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC;IAe3E,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS;IAQzD,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAI/B,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK9B,QAAQ,IAAI,IAAI;IAKhB,qFAAqF;IACrF,aAAa,IAAI,IAAI;IAKrB,OAAO,CAAC,OAAO;CAQhB"}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
listeners = [];
|
|
3
|
-
onEvent(listener) {
|
|
4
|
-
this.listeners.push(listener);
|
|
5
|
-
}
|
|
6
|
-
push(event) {
|
|
7
|
-
for (const listener of this.listeners) {
|
|
8
|
-
listener(event);
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
const NS = "queues";
|
|
12
2
|
export class WorkQueue {
|
|
13
3
|
queues = new Map();
|
|
14
4
|
maxSize;
|
|
15
|
-
|
|
5
|
+
store;
|
|
6
|
+
constructor(maxSize = 100, store) {
|
|
16
7
|
this.maxSize = maxSize;
|
|
8
|
+
this.store = store;
|
|
9
|
+
}
|
|
10
|
+
/** Hydrate in-memory state from the persistent store. */
|
|
11
|
+
async init() {
|
|
12
|
+
if (!this.store)
|
|
13
|
+
return;
|
|
14
|
+
const entries = await this.store.list(NS);
|
|
15
|
+
for (const { key, value } of entries) {
|
|
16
|
+
this.queues.set(key, value.map((item) => ({ context: item.context, receivedAt: new Date(item.receivedAt) })));
|
|
17
|
+
}
|
|
17
18
|
}
|
|
18
19
|
enqueue(agentName, context, receivedAt) {
|
|
19
20
|
let queue = this.queues.get(agentName);
|
|
@@ -26,24 +27,41 @@ export class WorkQueue {
|
|
|
26
27
|
dropped = queue.shift();
|
|
27
28
|
}
|
|
28
29
|
queue.push({ context, receivedAt: receivedAt || new Date() });
|
|
30
|
+
this.persist(agentName);
|
|
29
31
|
return { accepted: true, dropped };
|
|
30
32
|
}
|
|
31
33
|
dequeue(agentName) {
|
|
32
34
|
const queue = this.queues.get(agentName);
|
|
33
35
|
if (!queue || queue.length === 0)
|
|
34
36
|
return undefined;
|
|
35
|
-
|
|
37
|
+
const item = queue.shift();
|
|
38
|
+
this.persist(agentName);
|
|
39
|
+
return item;
|
|
36
40
|
}
|
|
37
41
|
size(agentName) {
|
|
38
42
|
return this.queues.get(agentName)?.length ?? 0;
|
|
39
43
|
}
|
|
40
44
|
clear(agentName) {
|
|
41
45
|
this.queues.delete(agentName);
|
|
46
|
+
this.store?.delete(NS, agentName).catch(() => { });
|
|
42
47
|
}
|
|
43
48
|
clearAll() {
|
|
44
49
|
this.queues.clear();
|
|
50
|
+
this.store?.deleteAll(NS).catch(() => { });
|
|
51
|
+
}
|
|
52
|
+
/** Clear in-memory queues only — persistent state survives for the next instance. */
|
|
53
|
+
clearInMemory() {
|
|
54
|
+
this.queues.clear();
|
|
55
|
+
// Does NOT touch this.store — persistent state survives for the next instance
|
|
56
|
+
}
|
|
57
|
+
persist(agentName) {
|
|
58
|
+
const queue = this.queues.get(agentName);
|
|
59
|
+
if (!queue || queue.length === 0) {
|
|
60
|
+
this.store?.delete(NS, agentName).catch(() => { });
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
this.store?.set(NS, agentName, queue, { ttl: 86400 }).catch(() => { }); // 24h TTL
|
|
64
|
+
}
|
|
45
65
|
}
|
|
46
66
|
}
|
|
47
|
-
/** @deprecated Use WorkQueue instead */
|
|
48
|
-
export const WebhookEventQueue = WorkQueue;
|
|
49
67
|
//# sourceMappingURL=event-queue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-queue.js","sourceRoot":"","sources":["../../src/scheduler/event-queue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event-queue.js","sourceRoot":"","sources":["../../src/scheduler/event-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type PromptSkills } from "../agents/prompt.js";
|
|
2
|
+
import { WorkQueue } from "./event-queue.js";
|
|
3
|
+
import { RunnerPool, type PoolRunner } from "./runner-pool.js";
|
|
4
|
+
import type { AgentConfig } from "../shared/config.js";
|
|
5
|
+
import type { WebhookContext } from "../webhooks/types.js";
|
|
6
|
+
import type { createLogger } from "../shared/logger.js";
|
|
7
|
+
export declare const DEFAULT_MAX_RERUNS = 10;
|
|
8
|
+
export declare const DEFAULT_MAX_TRIGGER_DEPTH = 3;
|
|
9
|
+
export type WorkItem = {
|
|
10
|
+
type: 'webhook';
|
|
11
|
+
context: WebhookContext;
|
|
12
|
+
} | {
|
|
13
|
+
type: 'agent-trigger';
|
|
14
|
+
sourceAgent: string;
|
|
15
|
+
context: string;
|
|
16
|
+
depth: number;
|
|
17
|
+
};
|
|
18
|
+
export interface SchedulerContext {
|
|
19
|
+
runnerPools: Record<string, RunnerPool>;
|
|
20
|
+
agentConfigs: AgentConfig[];
|
|
21
|
+
maxReruns: number;
|
|
22
|
+
maxTriggerDepth: number;
|
|
23
|
+
logger: ReturnType<typeof createLogger>;
|
|
24
|
+
workQueue: WorkQueue<WorkItem>;
|
|
25
|
+
shuttingDown: boolean;
|
|
26
|
+
skills?: PromptSkills;
|
|
27
|
+
useBakedImages: boolean;
|
|
28
|
+
}
|
|
29
|
+
export declare function makeScheduledPrompt(agentConfig: AgentConfig, ctx: SchedulerContext): string;
|
|
30
|
+
export declare function makeWebhookPrompt(agentConfig: AgentConfig, context: WebhookContext, ctx: SchedulerContext): string;
|
|
31
|
+
export declare function makeTriggeredPrompt(agentConfig: AgentConfig, sourceAgent: string, context: string, ctx: SchedulerContext): string;
|
|
32
|
+
/** Run a single agent and dispatch any resulting triggers. */
|
|
33
|
+
export declare function executeRun(runner: PoolRunner, prompt: string, triggerInfo: {
|
|
34
|
+
type: 'schedule' | 'webhook' | 'agent';
|
|
35
|
+
source?: string;
|
|
36
|
+
}, agentName: string, depth: number, ctx: SchedulerContext): Promise<{
|
|
37
|
+
result: string;
|
|
38
|
+
triggers: Array<{
|
|
39
|
+
agent: string;
|
|
40
|
+
context: string;
|
|
41
|
+
}>;
|
|
42
|
+
}>;
|
|
43
|
+
export declare function dispatchTriggers(triggers: Array<{
|
|
44
|
+
agent: string;
|
|
45
|
+
context: string;
|
|
46
|
+
}>, sourceAgent: string, depth: number, ctx: SchedulerContext): void;
|
|
47
|
+
/** Drain all agents' work queues, processing items in parallel batches. */
|
|
48
|
+
export declare function drainQueues(ctx: SchedulerContext): Promise<void>;
|
|
49
|
+
export declare function runWithReruns(runner: PoolRunner, agentConfig: AgentConfig, depth: number, ctx: SchedulerContext): Promise<void>;
|
|
50
|
+
//# sourceMappingURL=execution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/scheduler/execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAuB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnF,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACxC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;CACzB;AAID,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAE3F;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAElH;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAEjI;AAED,8DAA8D;AAC9D,wBAAsB,UAAU,CAC9B,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAClC,WAAW,EAAE;IAAE,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACxE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GACtD,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAKlF;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EACnD,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GACxD,IAAI,CAgCN;AAED,2EAA2E;AAC3E,wBAAsB,WAAW,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCtE;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GACjF,OAAO,CAAC,IAAI,CAAC,CAoBf"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { buildScheduledPrompt, buildWebhookPrompt, buildCalledPrompt, buildScheduledSuffix, buildWebhookSuffix, buildCalledSuffix, } from "../agents/prompt.js";
|
|
2
|
+
export const DEFAULT_MAX_RERUNS = 10;
|
|
3
|
+
export const DEFAULT_MAX_TRIGGER_DEPTH = 3;
|
|
4
|
+
// Prompt helpers: when images have baked-in static files, only pass the dynamic suffix.
|
|
5
|
+
// Otherwise, pass the full prompt (for non-Docker or legacy images).
|
|
6
|
+
export function makeScheduledPrompt(agentConfig, ctx) {
|
|
7
|
+
return ctx.useBakedImages ? buildScheduledSuffix() : buildScheduledPrompt(agentConfig, ctx.skills);
|
|
8
|
+
}
|
|
9
|
+
export function makeWebhookPrompt(agentConfig, context, ctx) {
|
|
10
|
+
return ctx.useBakedImages ? buildWebhookSuffix(context) : buildWebhookPrompt(agentConfig, context, ctx.skills);
|
|
11
|
+
}
|
|
12
|
+
export function makeTriggeredPrompt(agentConfig, sourceAgent, context, ctx) {
|
|
13
|
+
return ctx.useBakedImages ? buildCalledSuffix(sourceAgent, context) : buildCalledPrompt(agentConfig, sourceAgent, context, ctx.skills);
|
|
14
|
+
}
|
|
15
|
+
/** Run a single agent and dispatch any resulting triggers. */
|
|
16
|
+
export async function executeRun(runner, prompt, triggerInfo, agentName, depth, ctx) {
|
|
17
|
+
const outcome = await runner.run(prompt, triggerInfo);
|
|
18
|
+
const triggers = outcome.triggers ?? [];
|
|
19
|
+
if (triggers.length > 0)
|
|
20
|
+
dispatchTriggers(triggers, agentName, depth, ctx);
|
|
21
|
+
return { result: outcome.result, triggers };
|
|
22
|
+
}
|
|
23
|
+
export function dispatchTriggers(triggers, sourceAgent, depth, ctx) {
|
|
24
|
+
for (const { agent, context } of triggers) {
|
|
25
|
+
if (agent === sourceAgent) {
|
|
26
|
+
ctx.logger.warn({ source: sourceAgent }, "agent cannot trigger itself, skipping");
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (depth >= ctx.maxTriggerDepth) {
|
|
30
|
+
ctx.logger.warn({ source: sourceAgent, target: agent, depth }, "trigger depth limit reached, skipping");
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
const targetConfig = ctx.agentConfigs.find((a) => a.name === agent);
|
|
34
|
+
if (!targetConfig) {
|
|
35
|
+
ctx.logger.warn({ source: sourceAgent, target: agent }, "trigger target not found, skipping");
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const pool = ctx.runnerPools[agent];
|
|
39
|
+
if (pool.size === 0) {
|
|
40
|
+
ctx.logger.info({ source: sourceAgent, target: agent }, "target disabled (scale=0), skipping");
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const runner = pool.getAvailableRunner();
|
|
44
|
+
if (!runner) {
|
|
45
|
+
ctx.workQueue.enqueue(agent, { type: 'agent-trigger', sourceAgent, context, depth });
|
|
46
|
+
ctx.logger.info({ source: sourceAgent, target: agent }, "all runners busy, trigger queued");
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
ctx.logger.info({ source: sourceAgent, target: agent, depth }, "agent trigger firing");
|
|
50
|
+
const prompt = makeTriggeredPrompt(targetConfig, sourceAgent, context, ctx);
|
|
51
|
+
executeRun(runner, prompt, { type: 'agent', source: sourceAgent }, agent, depth + 1, ctx)
|
|
52
|
+
.then(() => drainQueues(ctx))
|
|
53
|
+
.catch((err) => ctx.logger.error({ err, target: agent }, "triggered run failed"));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/** Drain all agents' work queues, processing items in parallel batches. */
|
|
57
|
+
export async function drainQueues(ctx) {
|
|
58
|
+
while (!ctx.shuttingDown) {
|
|
59
|
+
const batch = [];
|
|
60
|
+
for (const agentConfig of ctx.agentConfigs) {
|
|
61
|
+
const pool = ctx.runnerPools[agentConfig.name];
|
|
62
|
+
if (!pool || ctx.workQueue.size(agentConfig.name) === 0)
|
|
63
|
+
continue;
|
|
64
|
+
for (const runner of pool.getAllAvailableRunners()) {
|
|
65
|
+
const item = ctx.workQueue.dequeue(agentConfig.name);
|
|
66
|
+
if (!item)
|
|
67
|
+
break;
|
|
68
|
+
batch.push({ item, runner, agentConfig });
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (batch.length === 0)
|
|
72
|
+
break;
|
|
73
|
+
await Promise.all(batch.map(({ item, runner, agentConfig }) => {
|
|
74
|
+
const work = item.context;
|
|
75
|
+
const ageMs = Date.now() - item.receivedAt.getTime();
|
|
76
|
+
if (work.type === 'webhook') {
|
|
77
|
+
ctx.logger.info({ agent: agentConfig.name, event: work.context.event, ageMs }, "draining queued webhook");
|
|
78
|
+
const prompt = makeWebhookPrompt(agentConfig, work.context, ctx);
|
|
79
|
+
return executeRun(runner, prompt, { type: 'webhook', source: work.context.event }, agentConfig.name, 0, ctx)
|
|
80
|
+
.catch((err) => ctx.logger.error({ err, agent: agentConfig.name }, "queued webhook failed"));
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
if (work.depth >= ctx.maxTriggerDepth)
|
|
84
|
+
return Promise.resolve();
|
|
85
|
+
ctx.logger.info({ source: work.sourceAgent, target: agentConfig.name, depth: work.depth, ageMs }, "draining queued trigger");
|
|
86
|
+
const prompt = makeTriggeredPrompt(agentConfig, work.sourceAgent, work.context, ctx);
|
|
87
|
+
return executeRun(runner, prompt, { type: 'agent', source: work.sourceAgent }, agentConfig.name, work.depth + 1, ctx)
|
|
88
|
+
.catch((err) => ctx.logger.error({ err, agent: agentConfig.name }, "queued trigger failed"));
|
|
89
|
+
}
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
export async function runWithReruns(runner, agentConfig, depth, ctx) {
|
|
94
|
+
let { result } = await executeRun(runner, makeScheduledPrompt(agentConfig, ctx), { type: 'schedule' }, agentConfig.name, depth, ctx);
|
|
95
|
+
let reruns = 0;
|
|
96
|
+
while (result === "rerun" && reruns < ctx.maxReruns) {
|
|
97
|
+
reruns++;
|
|
98
|
+
ctx.logger.info({ rerun: reruns, maxReruns: ctx.maxReruns }, `${agentConfig.name} requested rerun`);
|
|
99
|
+
({ result } = await executeRun(runner, makeScheduledPrompt(agentConfig, ctx), { type: 'schedule', source: `rerun ${reruns}/${ctx.maxReruns}` }, agentConfig.name, depth, ctx));
|
|
100
|
+
}
|
|
101
|
+
if (result === "rerun" && reruns >= ctx.maxReruns) {
|
|
102
|
+
ctx.logger.warn({ maxReruns: ctx.maxReruns }, `${agentConfig.name} hit max reruns limit`);
|
|
103
|
+
}
|
|
104
|
+
await drainQueues(ctx);
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=execution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/scheduler/execution.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,8 @@ import type { GlobalConfig } from "../shared/config.js";
|
|
|
3
3
|
import type { StatusTracker } from "../tui/status-tracker.js";
|
|
4
4
|
import type { GatewayServer } from "../gateway/index.js";
|
|
5
5
|
import { RunnerPool } from "./runner-pool.js";
|
|
6
|
-
export
|
|
6
|
+
export type { SchedulerContext, WorkItem } from "./execution.js";
|
|
7
|
+
export declare function startScheduler(projectPath: string, globalConfigOverride?: GlobalConfig, statusTracker?: StatusTracker, cloudMode?: boolean, gatewayEnabled?: boolean, webUI?: boolean, expose?: boolean): Promise<{
|
|
7
8
|
cronJobs: Cron<undefined>[];
|
|
8
9
|
runnerPools: Record<string, RunnerPool>;
|
|
9
10
|
gateway: GatewayServer | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scheduler/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,qBAAqB,CAAC;AAGrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scheduler/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,qBAAqB,CAAC;AAGrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD,OAAO,EAAE,UAAU,EAAmB,MAAM,kBAAkB,CAAC;AAa/D,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEjE,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO;;;;;;;GA8e7M"}
|