@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.
Files changed (181) hide show
  1. package/AGENTS.md +2 -2
  2. package/README.md +2 -1
  3. package/dist/agents/container-entry.d.ts.map +1 -1
  4. package/dist/agents/container-entry.js +9 -0
  5. package/dist/agents/container-entry.js.map +1 -1
  6. package/dist/agents/container-runner.d.ts +1 -1
  7. package/dist/agents/container-runner.d.ts.map +1 -1
  8. package/dist/agents/container-runner.js +11 -16
  9. package/dist/agents/container-runner.js.map +1 -1
  10. package/dist/agents/runner.d.ts.map +1 -1
  11. package/dist/agents/runner.js +26 -1
  12. package/dist/agents/runner.js.map +1 -1
  13. package/dist/cli/commands/chat.js +3 -3
  14. package/dist/cli/commands/chat.js.map +1 -1
  15. package/dist/cli/commands/doctor.d.ts.map +1 -1
  16. package/dist/cli/commands/doctor.js +5 -2
  17. package/dist/cli/commands/doctor.js.map +1 -1
  18. package/dist/cli/commands/logs.d.ts.map +1 -1
  19. package/dist/cli/commands/logs.js +40 -22
  20. package/dist/cli/commands/logs.js.map +1 -1
  21. package/dist/cli/commands/run.d.ts.map +1 -1
  22. package/dist/cli/commands/run.js +8 -4
  23. package/dist/cli/commands/run.js.map +1 -1
  24. package/dist/cli/commands/start.d.ts +1 -0
  25. package/dist/cli/commands/start.d.ts.map +1 -1
  26. package/dist/cli/commands/start.js +5 -1
  27. package/dist/cli/commands/start.js.map +1 -1
  28. package/dist/cli/commands/status.d.ts +1 -0
  29. package/dist/cli/commands/status.d.ts.map +1 -1
  30. package/dist/cli/commands/status.js +166 -55
  31. package/dist/cli/commands/status.js.map +1 -1
  32. package/dist/cli/commands/stop.d.ts +4 -0
  33. package/dist/cli/commands/stop.d.ts.map +1 -0
  34. package/dist/cli/commands/stop.js +27 -0
  35. package/dist/cli/commands/stop.js.map +1 -0
  36. package/dist/cli/main.js +12 -3
  37. package/dist/cli/main.js.map +1 -1
  38. package/dist/cli/resolve-target.d.ts +27 -0
  39. package/dist/cli/resolve-target.d.ts.map +1 -0
  40. package/dist/cli/resolve-target.js +42 -0
  41. package/dist/cli/resolve-target.js.map +1 -0
  42. package/dist/cloud/aws/constants.d.ts +2 -2
  43. package/dist/cloud/aws/constants.d.ts.map +1 -1
  44. package/dist/cloud/aws/constants.js +2 -2
  45. package/dist/cloud/aws/constants.js.map +1 -1
  46. package/dist/cloud/aws/deploy.d.ts +3 -2
  47. package/dist/cloud/aws/deploy.d.ts.map +1 -1
  48. package/dist/cloud/aws/deploy.js +8 -29
  49. package/dist/cloud/aws/deploy.js.map +1 -1
  50. package/dist/cloud/aws/iam.d.ts +13 -0
  51. package/dist/cloud/aws/iam.d.ts.map +1 -1
  52. package/dist/cloud/aws/iam.js +70 -0
  53. package/dist/cloud/aws/iam.js.map +1 -1
  54. package/dist/cloud/aws/provider.d.ts +11 -0
  55. package/dist/cloud/aws/provider.d.ts.map +1 -1
  56. package/dist/cloud/aws/provider.js +52 -2
  57. package/dist/cloud/aws/provider.js.map +1 -1
  58. package/dist/cloud/aws/provision.d.ts.map +1 -1
  59. package/dist/cloud/aws/provision.js +54 -20
  60. package/dist/cloud/aws/provision.js.map +1 -1
  61. package/dist/cloud/gcp/provider.d.ts +4 -0
  62. package/dist/cloud/gcp/provider.d.ts.map +1 -1
  63. package/dist/cloud/gcp/provider.js +26 -0
  64. package/dist/cloud/gcp/provider.js.map +1 -1
  65. package/dist/cloud/provider.d.ts +6 -0
  66. package/dist/cloud/provider.d.ts.map +1 -1
  67. package/dist/cloud/provider.js.map +1 -1
  68. package/dist/docker/ecs-runtime.d.ts +2 -2
  69. package/dist/docker/ecs-runtime.d.ts.map +1 -1
  70. package/dist/docker/ecs-runtime.js +9 -4
  71. package/dist/docker/ecs-runtime.js.map +1 -1
  72. package/dist/docker/image.js +1 -1
  73. package/dist/docker/image.js.map +1 -1
  74. package/dist/docker/runtime.d.ts +4 -3
  75. package/dist/docker/runtime.d.ts.map +1 -1
  76. package/dist/gateway/call-store.d.ts +6 -1
  77. package/dist/gateway/call-store.d.ts.map +1 -1
  78. package/dist/gateway/call-store.js +25 -1
  79. package/dist/gateway/call-store.js.map +1 -1
  80. package/dist/gateway/container-registry.d.ts +25 -0
  81. package/dist/gateway/container-registry.d.ts.map +1 -0
  82. package/dist/gateway/container-registry.js +43 -0
  83. package/dist/gateway/container-registry.js.map +1 -0
  84. package/dist/gateway/index.d.ts +6 -2
  85. package/dist/gateway/index.d.ts.map +1 -1
  86. package/dist/gateway/index.js +19 -10
  87. package/dist/gateway/index.js.map +1 -1
  88. package/dist/gateway/lock-store.d.ts +7 -1
  89. package/dist/gateway/lock-store.d.ts.map +1 -1
  90. package/dist/gateway/lock-store.js +37 -7
  91. package/dist/gateway/lock-store.js.map +1 -1
  92. package/dist/gateway/routes/calls.d.ts +2 -2
  93. package/dist/gateway/routes/calls.d.ts.map +1 -1
  94. package/dist/gateway/routes/calls.js.map +1 -1
  95. package/dist/gateway/routes/control.d.ts +1 -0
  96. package/dist/gateway/routes/control.d.ts.map +1 -1
  97. package/dist/gateway/routes/control.js +9 -0
  98. package/dist/gateway/routes/control.js.map +1 -1
  99. package/dist/gateway/routes/dashboard.d.ts +6 -0
  100. package/dist/gateway/routes/dashboard.d.ts.map +1 -1
  101. package/dist/gateway/routes/dashboard.js +14 -8
  102. package/dist/gateway/routes/dashboard.js.map +1 -1
  103. package/dist/gateway/routes/locks.d.ts +2 -2
  104. package/dist/gateway/routes/locks.d.ts.map +1 -1
  105. package/dist/gateway/routes/locks.js.map +1 -1
  106. package/dist/gateway/routes/shutdown.d.ts +2 -2
  107. package/dist/gateway/routes/shutdown.d.ts.map +1 -1
  108. package/dist/gateway/routes/shutdown.js +1 -1
  109. package/dist/gateway/routes/shutdown.js.map +1 -1
  110. package/dist/gateway/routes/signals.d.ts +2 -2
  111. package/dist/gateway/routes/signals.d.ts.map +1 -1
  112. package/dist/gateway/routes/signals.js.map +1 -1
  113. package/dist/preflight/interpolate.d.ts +10 -0
  114. package/dist/preflight/interpolate.d.ts.map +1 -0
  115. package/dist/preflight/interpolate.js +33 -0
  116. package/dist/preflight/interpolate.js.map +1 -0
  117. package/dist/preflight/providers/git-clone.d.ts +3 -0
  118. package/dist/preflight/providers/git-clone.d.ts.map +1 -0
  119. package/dist/preflight/providers/git-clone.js +36 -0
  120. package/dist/preflight/providers/git-clone.js.map +1 -0
  121. package/dist/preflight/providers/http.d.ts +3 -0
  122. package/dist/preflight/providers/http.d.ts.map +1 -0
  123. package/dist/preflight/providers/http.js +36 -0
  124. package/dist/preflight/providers/http.js.map +1 -0
  125. package/dist/preflight/providers/shell.d.ts +3 -0
  126. package/dist/preflight/providers/shell.d.ts.map +1 -0
  127. package/dist/preflight/providers/shell.js +28 -0
  128. package/dist/preflight/providers/shell.js.map +1 -0
  129. package/dist/preflight/registry.d.ts +4 -0
  130. package/dist/preflight/registry.d.ts.map +1 -0
  131. package/dist/preflight/registry.js +20 -0
  132. package/dist/preflight/registry.js.map +1 -0
  133. package/dist/preflight/runner.d.ts +7 -0
  134. package/dist/preflight/runner.d.ts.map +1 -0
  135. package/dist/preflight/runner.js +28 -0
  136. package/dist/preflight/runner.js.map +1 -0
  137. package/dist/preflight/schema.d.ts +21 -0
  138. package/dist/preflight/schema.d.ts.map +1 -0
  139. package/dist/preflight/schema.js +9 -0
  140. package/dist/preflight/schema.js.map +1 -0
  141. package/dist/scheduler/event-queue.d.ts +8 -15
  142. package/dist/scheduler/event-queue.d.ts.map +1 -1
  143. package/dist/scheduler/event-queue.js +33 -15
  144. package/dist/scheduler/event-queue.js.map +1 -1
  145. package/dist/scheduler/execution.d.ts +50 -0
  146. package/dist/scheduler/execution.d.ts.map +1 -0
  147. package/dist/scheduler/execution.js +106 -0
  148. package/dist/scheduler/execution.js.map +1 -0
  149. package/dist/scheduler/index.d.ts +2 -1
  150. package/dist/scheduler/index.d.ts.map +1 -1
  151. package/dist/scheduler/index.js +91 -179
  152. package/dist/scheduler/index.js.map +1 -1
  153. package/dist/scheduler/runner-pool.d.ts +6 -16
  154. package/dist/scheduler/runner-pool.d.ts.map +1 -1
  155. package/dist/scheduler/runner-pool.js +15 -26
  156. package/dist/scheduler/runner-pool.js.map +1 -1
  157. package/dist/setup/scaffold.d.ts.map +1 -1
  158. package/dist/setup/scaffold.js +2 -1
  159. package/dist/setup/scaffold.js.map +1 -1
  160. package/dist/shared/config.d.ts +2 -0
  161. package/dist/shared/config.d.ts.map +1 -1
  162. package/dist/shared/config.js +6 -3
  163. package/dist/shared/config.js.map +1 -1
  164. package/dist/shared/paths.js +1 -1
  165. package/dist/shared/paths.js.map +1 -1
  166. package/dist/shared/state-store-dynamo.d.ts +39 -0
  167. package/dist/shared/state-store-dynamo.d.ts.map +1 -0
  168. package/dist/shared/state-store-dynamo.js +143 -0
  169. package/dist/shared/state-store-dynamo.js.map +1 -0
  170. package/dist/shared/state-store-sqlite.d.ts +28 -0
  171. package/dist/shared/state-store-sqlite.d.ts.map +1 -0
  172. package/dist/shared/state-store-sqlite.js +78 -0
  173. package/dist/shared/state-store-sqlite.js.map +1 -0
  174. package/dist/shared/state-store.d.ts +51 -0
  175. package/dist/shared/state-store.d.ts.map +1 -0
  176. package/dist/shared/state-store.js +31 -0
  177. package/dist/shared/state-store.js.map +1 -0
  178. package/dist/webhooks/providers/github.d.ts.map +1 -1
  179. package/dist/webhooks/providers/github.js +3 -0
  180. package/dist/webhooks/providers/github.js.map +1 -1
  181. 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
- export interface QueuedEvent {
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
- constructor(maxSize?: number);
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,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAEzD,qBAAa,UAAU;IACrB,OAAO,CAAC,SAAS,CAAuB;IAExC,OAAO,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAItC,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;CAK/B;AAID,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;AAED,qBAAa,SAAS,CAAC,CAAC;IACtB,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,SAAM;IAIzB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC;IAc3E,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS;IAMzD,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAI/B,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI9B,QAAQ,IAAI,IAAI;CAGjB;AAED,wCAAwC;AACxC,eAAO,MAAM,iBAAiB,kBAAY,CAAC;AAC3C,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC"}
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
- export class EventQueue {
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
- constructor(maxSize = 100) {
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
- return queue.shift();
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":"AAQA,MAAM,OAAO,UAAU;IACb,SAAS,GAAoB,EAAE,CAAC;IAExC,OAAO,CAAC,QAAuB;QAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,CAAC,KAAkB;QACrB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;CACF;AAcD,MAAM,OAAO,SAAS;IACZ,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;IAChD,OAAO,CAAS;IAExB,YAAY,OAAO,GAAG,GAAG;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,SAAiB,EAAE,OAAU,EAAE,UAAiB;QACtD,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,OAAsC,CAAC;QAC3C,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,SAAiB;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACnD,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,SAAiB;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,SAAiB;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AAED,wCAAwC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC"}
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 declare function startScheduler(projectPath: string, globalConfigOverride?: GlobalConfig, statusTracker?: StatusTracker, cloudMode?: boolean, gatewayEnabled?: boolean, webUI?: boolean): Promise<{
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;AAM9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD,OAAO,EAAE,UAAU,EAAmB,MAAM,kBAAkB,CAAC;AAmM/D,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;;;;;;;GAke3L"}
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"}