@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
@@ -1,4 +1,5 @@
1
1
  import type { WebhookTrigger } from "../webhooks/types.js";
2
+ import type { PreflightStep } from "../preflight/schema.js";
2
3
  export interface ModelConfig {
3
4
  provider: string;
4
5
  model: string;
@@ -80,6 +81,7 @@ export interface AgentConfig {
80
81
  model: ModelConfig;
81
82
  schedule?: string;
82
83
  webhooks?: WebhookTrigger[];
84
+ preflight?: PreflightStep[];
83
85
  params?: Record<string, unknown>;
84
86
  scale?: number;
85
87
  timeout?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@ function validateCloudConfig(raw) {
48
48
  throw new ConfigError(`Unknown cloud provider: "${raw.provider}". Supported: ecs, cloud-run`);
49
49
  }
50
50
  export function loadAgentConfig(projectPath, agentName) {
51
- const agentDir = resolve(projectPath, agentName);
51
+ const agentDir = resolve(projectPath, "agents", agentName);
52
52
  const tomlPath = resolve(agentDir, "agent-config.toml");
53
53
  if (!existsSync(tomlPath)) {
54
54
  throw new ConfigError(`Agent config not found at ${tomlPath}.`);
@@ -88,12 +88,15 @@ export function discoverAgents(projectPath) {
88
88
  const agents = [];
89
89
  if (!existsSync(projectPath))
90
90
  return agents;
91
- for (const entry of readdirSync(projectPath)) {
91
+ const agentsPath = resolve(projectPath, "agents");
92
+ if (!existsSync(agentsPath))
93
+ return agents;
94
+ for (const entry of readdirSync(agentsPath)) {
92
95
  if (excluded.has(entry))
93
96
  continue;
94
97
  if (entry.startsWith("."))
95
98
  continue;
96
- const entryPath = resolve(projectPath, entry);
99
+ const entryPath = resolve(agentsPath, entry);
97
100
  if (!statSync(entryPath).isDirectory())
98
101
  continue;
99
102
  if (existsSync(resolve(entryPath, "agent-config.toml"))) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,6 @@ export function eventsDir(projectPath) {
14
14
  return resolve(projectPath, ".al", "events");
15
15
  }
16
16
  export function agentDir(projectPath, agentType) {
17
- return resolve(projectPath, agentType);
17
+ return resolve(projectPath, "agents", agentType);
18
18
  }
19
19
  //# sourceMappingURL=paths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/shared/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAEvD,MAAM,UAAU,UAAU,CAAC,WAAmB;IAC5C,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,WAAmB;IACzC,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,WAAmB;IAC3C,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,WAAmB,EAAE,SAAiB;IAC7D,OAAO,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/shared/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAEvD,MAAM,UAAU,UAAU,CAAC,WAAmB;IAC5C,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,WAAmB;IACzC,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,WAAmB;IAC3C,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,WAAmB,EAAE,SAAiB;IAC7D,OAAO,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { StateStore } from "./state-store.js";
2
+ /**
3
+ * DynamoDB-backed StateStore for cloud mode.
4
+ *
5
+ * Table schema:
6
+ * PK = `pk` (String) — namespace
7
+ * SK = `sk` (String) — key
8
+ * TTL = `expiresAt` (Number, epoch seconds) — auto-deleted by DynamoDB
9
+ *
10
+ * Use `DynamoStateStore.create()` which ensures the table exists before
11
+ * returning the store instance.
12
+ */
13
+ export declare class DynamoStateStore implements StateStore {
14
+ private doc;
15
+ private tableName;
16
+ private constructor();
17
+ /**
18
+ * Create a DynamoStateStore, ensuring the table exists (creates it if missing).
19
+ */
20
+ static create(region: string, tableName: string): Promise<DynamoStateStore>;
21
+ get<T>(ns: string, key: string): Promise<T | null>;
22
+ set<T>(ns: string, key: string, value: T, opts?: {
23
+ ttl?: number;
24
+ }): Promise<void>;
25
+ delete(ns: string, key: string): Promise<void>;
26
+ deleteAll(ns: string): Promise<void>;
27
+ list<T>(ns: string): Promise<Array<{
28
+ key: string;
29
+ value: T;
30
+ }>>;
31
+ close(): Promise<void>;
32
+ private queryPartition;
33
+ /**
34
+ * Ensure the DynamoDB table exists. Creates it with PAY_PER_REQUEST billing
35
+ * and enables TTL if the table is new.
36
+ */
37
+ private ensureTable;
38
+ }
39
+ //# sourceMappingURL=state-store-dynamo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-store-dynamo.d.ts","sourceRoot":"","sources":["../../src/shared/state-store-dynamo.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;;;;;;;GAUG;AACH,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,GAAG,CAAyB;IACpC,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO;IAOP;;OAEG;WACU,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAS3E,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAelD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjF,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9C,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYpC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;IAW9D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAMd,cAAc;IAoB5B;;;OAGG;YACW,WAAW;CA0C1B"}
@@ -0,0 +1,143 @@
1
+ import { DynamoDBClient, CreateTableCommand, DescribeTableCommand, UpdateTimeToLiveCommand, } from "@aws-sdk/client-dynamodb";
2
+ import { DynamoDBDocumentClient, GetCommand, PutCommand, DeleteCommand, QueryCommand, } from "@aws-sdk/lib-dynamodb";
3
+ /**
4
+ * DynamoDB-backed StateStore for cloud mode.
5
+ *
6
+ * Table schema:
7
+ * PK = `pk` (String) — namespace
8
+ * SK = `sk` (String) — key
9
+ * TTL = `expiresAt` (Number, epoch seconds) — auto-deleted by DynamoDB
10
+ *
11
+ * Use `DynamoStateStore.create()` which ensures the table exists before
12
+ * returning the store instance.
13
+ */
14
+ export class DynamoStateStore {
15
+ doc;
16
+ tableName;
17
+ constructor(client, tableName) {
18
+ this.doc = DynamoDBDocumentClient.from(client, {
19
+ marshallOptions: { removeUndefinedValues: true },
20
+ });
21
+ this.tableName = tableName;
22
+ }
23
+ /**
24
+ * Create a DynamoStateStore, ensuring the table exists (creates it if missing).
25
+ */
26
+ static async create(region, tableName) {
27
+ const client = new DynamoDBClient({ region });
28
+ const store = new DynamoStateStore(client, tableName);
29
+ await store.ensureTable(client);
30
+ return store;
31
+ }
32
+ // --- StateStore interface ---
33
+ async get(ns, key) {
34
+ const res = await this.doc.send(new GetCommand({
35
+ TableName: this.tableName,
36
+ Key: { pk: ns, sk: key },
37
+ ProjectionExpression: "#v, expiresAt",
38
+ ExpressionAttributeNames: { "#v": "value" },
39
+ }));
40
+ if (!res.Item)
41
+ return null;
42
+ // DynamoDB TTL is best-effort — check locally too.
43
+ if (res.Item.expiresAt && res.Item.expiresAt <= nowSec())
44
+ return null;
45
+ return JSON.parse(res.Item.value);
46
+ }
47
+ async set(ns, key, value, opts) {
48
+ const item = {
49
+ pk: ns,
50
+ sk: key,
51
+ value: JSON.stringify(value),
52
+ };
53
+ if (opts?.ttl) {
54
+ item.expiresAt = nowSec() + opts.ttl;
55
+ }
56
+ await this.doc.send(new PutCommand({ TableName: this.tableName, Item: item }));
57
+ }
58
+ async delete(ns, key) {
59
+ await this.doc.send(new DeleteCommand({ TableName: this.tableName, Key: { pk: ns, sk: key } }));
60
+ }
61
+ async deleteAll(ns) {
62
+ // DynamoDB has no batch-delete-by-partition — query then delete individually.
63
+ const items = await this.queryPartition(ns);
64
+ await Promise.all(items.map((item) => this.doc.send(new DeleteCommand({ TableName: this.tableName, Key: { pk: ns, sk: item.sk } }))));
65
+ }
66
+ async list(ns) {
67
+ const now = nowSec();
68
+ const items = await this.queryPartition(ns);
69
+ return items
70
+ .filter((item) => !item.expiresAt || item.expiresAt > now)
71
+ .map((item) => ({
72
+ key: item.sk,
73
+ value: JSON.parse(item.value),
74
+ }));
75
+ }
76
+ async close() {
77
+ this.doc.destroy();
78
+ }
79
+ // --- Internals ---
80
+ async queryPartition(ns) {
81
+ const results = [];
82
+ let exclusiveStartKey;
83
+ do {
84
+ const res = await this.doc.send(new QueryCommand({
85
+ TableName: this.tableName,
86
+ KeyConditionExpression: "pk = :pk",
87
+ ExpressionAttributeValues: { ":pk": ns },
88
+ ...(exclusiveStartKey ? { ExclusiveStartKey: exclusiveStartKey } : {}),
89
+ }));
90
+ if (res.Items)
91
+ results.push(...res.Items);
92
+ exclusiveStartKey = res.LastEvaluatedKey;
93
+ } while (exclusiveStartKey);
94
+ return results;
95
+ }
96
+ /**
97
+ * Ensure the DynamoDB table exists. Creates it with PAY_PER_REQUEST billing
98
+ * and enables TTL if the table is new.
99
+ */
100
+ async ensureTable(client) {
101
+ try {
102
+ await client.send(new DescribeTableCommand({ TableName: this.tableName }));
103
+ return; // table exists
104
+ }
105
+ catch (err) {
106
+ if (err.name !== "ResourceNotFoundException")
107
+ throw err;
108
+ }
109
+ await client.send(new CreateTableCommand({
110
+ TableName: this.tableName,
111
+ KeySchema: [
112
+ { AttributeName: "pk", KeyType: "HASH" },
113
+ { AttributeName: "sk", KeyType: "RANGE" },
114
+ ],
115
+ AttributeDefinitions: [
116
+ { AttributeName: "pk", AttributeType: "S" },
117
+ { AttributeName: "sk", AttributeType: "S" },
118
+ ],
119
+ BillingMode: "PAY_PER_REQUEST",
120
+ }));
121
+ // Wait for ACTIVE status (usually a few seconds with on-demand billing).
122
+ for (let i = 0; i < 60; i++) {
123
+ const desc = await client.send(new DescribeTableCommand({ TableName: this.tableName }));
124
+ if (desc.Table?.TableStatus === "ACTIVE")
125
+ break;
126
+ await new Promise((r) => setTimeout(r, 1000));
127
+ }
128
+ // Enable TTL on expiresAt attribute.
129
+ try {
130
+ await client.send(new UpdateTimeToLiveCommand({
131
+ TableName: this.tableName,
132
+ TimeToLiveSpecification: { Enabled: true, AttributeName: "expiresAt" },
133
+ }));
134
+ }
135
+ catch {
136
+ // TTL may already be enabled or not yet available — non-fatal.
137
+ }
138
+ }
139
+ }
140
+ function nowSec() {
141
+ return Math.floor(Date.now() / 1000);
142
+ }
143
+ //# sourceMappingURL=state-store-dynamo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-store-dynamo.js","sourceRoot":"","sources":["../../src/shared/state-store-dynamo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { StateStore } from "./state-store.js";
2
+ /**
3
+ * SQLite-backed StateStore for local mode.
4
+ *
5
+ * Uses better-sqlite3 for fast, synchronous, embedded storage.
6
+ * The async interface is preserved for API compatibility with the
7
+ * DynamoDB backend — all operations resolve immediately.
8
+ */
9
+ export declare class SqliteStateStore implements StateStore {
10
+ private db;
11
+ private stmts;
12
+ private sweepTimer;
13
+ constructor(dbPath: string);
14
+ get<T>(ns: string, key: string): Promise<T | null>;
15
+ set<T>(ns: string, key: string, value: T, opts?: {
16
+ ttl?: number;
17
+ }): Promise<void>;
18
+ delete(ns: string, key: string): Promise<void>;
19
+ deleteAll(ns: string): Promise<void>;
20
+ list<T>(ns: string): Promise<Array<{
21
+ key: string;
22
+ value: T;
23
+ }>>;
24
+ /** Remove expired rows. Returns the number of rows deleted. */
25
+ sweep(): number;
26
+ close(): Promise<void>;
27
+ }
28
+ //# sourceMappingURL=state-store-sqlite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-store-sqlite.d.ts","sourceRoot":"","sources":["../../src/shared/state-store-sqlite.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,EAAE,CAAgC;IAG1C,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,UAAU,CAA6C;gBAEnD,MAAM,EAAE,MAAM;IAyCpB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAKlD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjF,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;IAKpE,+DAA+D;IAC/D,KAAK,IAAI,MAAM;IAIT,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
@@ -0,0 +1,78 @@
1
+ import Database from "better-sqlite3";
2
+ import { mkdirSync } from "fs";
3
+ import { dirname } from "path";
4
+ /**
5
+ * SQLite-backed StateStore for local mode.
6
+ *
7
+ * Uses better-sqlite3 for fast, synchronous, embedded storage.
8
+ * The async interface is preserved for API compatibility with the
9
+ * DynamoDB backend — all operations resolve immediately.
10
+ */
11
+ export class SqliteStateStore {
12
+ db;
13
+ // better-sqlite3 generic Statement types don't compose with ReturnType<>;
14
+ // the public StateStore interface provides the type safety boundary.
15
+ stmts;
16
+ sweepTimer;
17
+ constructor(dbPath) {
18
+ mkdirSync(dirname(dbPath), { recursive: true });
19
+ this.db = new Database(dbPath);
20
+ this.db.pragma("journal_mode = WAL");
21
+ this.db.exec(`
22
+ CREATE TABLE IF NOT EXISTS state (
23
+ ns TEXT NOT NULL,
24
+ key TEXT NOT NULL,
25
+ value TEXT NOT NULL,
26
+ expires_at INTEGER,
27
+ PRIMARY KEY (ns, key)
28
+ )
29
+ `);
30
+ this.db.exec("CREATE INDEX IF NOT EXISTS idx_state_expires ON state(expires_at) WHERE expires_at IS NOT NULL");
31
+ // Prepare statements once for performance.
32
+ this.stmts = {
33
+ get: this.db.prepare("SELECT value FROM state WHERE ns = ? AND key = ? AND (expires_at IS NULL OR expires_at > ?)"),
34
+ set: this.db.prepare("INSERT OR REPLACE INTO state (ns, key, value, expires_at) VALUES (?, ?, ?, ?)"),
35
+ del: this.db.prepare("DELETE FROM state WHERE ns = ? AND key = ?"),
36
+ delAll: this.db.prepare("DELETE FROM state WHERE ns = ?"),
37
+ list: this.db.prepare("SELECT key, value FROM state WHERE ns = ? AND (expires_at IS NULL OR expires_at > ?)"),
38
+ sweep: this.db.prepare("DELETE FROM state WHERE expires_at IS NOT NULL AND expires_at <= ?"),
39
+ };
40
+ // Periodic sweep of expired rows (every 60 s).
41
+ this.sweepTimer = setInterval(() => this.sweep(), 60_000);
42
+ if (this.sweepTimer.unref)
43
+ this.sweepTimer.unref();
44
+ }
45
+ async get(ns, key) {
46
+ const row = this.stmts.get.get(ns, key, nowSec());
47
+ return row ? JSON.parse(row.value) : null;
48
+ }
49
+ async set(ns, key, value, opts) {
50
+ const expiresAt = opts?.ttl ? nowSec() + opts.ttl : null;
51
+ this.stmts.set.run(ns, key, JSON.stringify(value), expiresAt);
52
+ }
53
+ async delete(ns, key) {
54
+ this.stmts.del.run(ns, key);
55
+ }
56
+ async deleteAll(ns) {
57
+ this.stmts.delAll.run(ns);
58
+ }
59
+ async list(ns) {
60
+ const rows = this.stmts.list.all(ns, nowSec());
61
+ return rows.map((r) => ({ key: r.key, value: JSON.parse(r.value) }));
62
+ }
63
+ /** Remove expired rows. Returns the number of rows deleted. */
64
+ sweep() {
65
+ return this.stmts.sweep.run(nowSec()).changes;
66
+ }
67
+ async close() {
68
+ if (this.sweepTimer) {
69
+ clearInterval(this.sweepTimer);
70
+ this.sweepTimer = undefined;
71
+ }
72
+ this.db.close();
73
+ }
74
+ }
75
+ function nowSec() {
76
+ return Math.floor(Date.now() / 1000);
77
+ }
78
+ //# sourceMappingURL=state-store-sqlite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-store-sqlite.js","sourceRoot":"","sources":["../../src/shared/state-store-sqlite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * StateStore — persistent key-value store with namespaces and TTL.
3
+ *
4
+ * Provides a unified storage interface for scheduler state that survives
5
+ * process restarts:
6
+ * - Container registry (secret → registration)
7
+ * - Locks (resource → holder)
8
+ * - Call entries (inter-agent communication)
9
+ * - Work queues (buffered webhook/call events)
10
+ *
11
+ * Local mode uses SQLite (zero-config file in project dir).
12
+ * Cloud mode uses DynamoDB (serverless, auto-provisioned by `al cloud setup`).
13
+ */
14
+ export interface StateStore {
15
+ /** Get a value by namespace and key. Returns null if not found or expired. */
16
+ get<T>(ns: string, key: string): Promise<T | null>;
17
+ /** Set a value. Optional TTL in seconds. */
18
+ set<T>(ns: string, key: string, value: T, opts?: {
19
+ ttl?: number;
20
+ }): Promise<void>;
21
+ /** Delete a single entry. */
22
+ delete(ns: string, key: string): Promise<void>;
23
+ /** Delete all entries in a namespace. */
24
+ deleteAll(ns: string): Promise<void>;
25
+ /** List all non-expired entries in a namespace. */
26
+ list<T>(ns: string): Promise<Array<{
27
+ key: string;
28
+ value: T;
29
+ }>>;
30
+ /** Close the store and release resources. */
31
+ close(): Promise<void>;
32
+ }
33
+ export interface SqliteStoreOpts {
34
+ type: "sqlite";
35
+ /** Path to the .db file (created if missing). */
36
+ path: string;
37
+ }
38
+ export interface DynamoStoreOpts {
39
+ type: "dynamodb";
40
+ region: string;
41
+ tableName: string;
42
+ }
43
+ export type StateStoreOpts = SqliteStoreOpts | DynamoStoreOpts;
44
+ /**
45
+ * Create a StateStore from configuration.
46
+ *
47
+ * Uses dynamic imports so native modules (better-sqlite3) and AWS SDK
48
+ * are only loaded when actually needed.
49
+ */
50
+ export declare function createStateStore(opts: StateStoreOpts): Promise<StateStore>;
51
+ //# sourceMappingURL=state-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../../src/shared/state-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,UAAU;IACzB,8EAA8E;IAC9E,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAEnD,4CAA4C;IAC5C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElF,6BAA6B;IAC7B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C,yCAAyC;IACzC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC,mDAAmD;IACnD,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC,CAAC;IAE/D,6CAA6C;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAID,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,eAAe,CAAC;AAE/D;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAUhF"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * StateStore — persistent key-value store with namespaces and TTL.
3
+ *
4
+ * Provides a unified storage interface for scheduler state that survives
5
+ * process restarts:
6
+ * - Container registry (secret → registration)
7
+ * - Locks (resource → holder)
8
+ * - Call entries (inter-agent communication)
9
+ * - Work queues (buffered webhook/call events)
10
+ *
11
+ * Local mode uses SQLite (zero-config file in project dir).
12
+ * Cloud mode uses DynamoDB (serverless, auto-provisioned by `al cloud setup`).
13
+ */
14
+ /**
15
+ * Create a StateStore from configuration.
16
+ *
17
+ * Uses dynamic imports so native modules (better-sqlite3) and AWS SDK
18
+ * are only loaded when actually needed.
19
+ */
20
+ export async function createStateStore(opts) {
21
+ if (opts.type === "sqlite") {
22
+ const { SqliteStateStore } = await import("./state-store-sqlite.js");
23
+ return new SqliteStateStore(opts.path);
24
+ }
25
+ if (opts.type === "dynamodb") {
26
+ const { DynamoStateStore } = await import("./state-store-dynamo.js");
27
+ return DynamoStateStore.create(opts.region, opts.tableName);
28
+ }
29
+ throw new Error(`Unknown state store type: ${opts.type}`);
30
+ }
31
+ //# sourceMappingURL=state-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-store.js","sourceRoot":"","sources":["../../src/shared/state-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAsCH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAoB;IACzD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACrE,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC7B,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACrE,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,6BAA8B,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC;AACrE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../src/webhooks/providers/github.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAuB,MAAM,aAAa,CAAC;AAGvG,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,MAAM,SAAY;IAElB,eAAe,CACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC3C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,MAAM,GAAG,IAAI;IAIhB,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,cAAc,GAAG,IAAI;IAsBzF,OAAO,CAAC,cAAc;IAoGtB,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO;CAgDvE"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../src/webhooks/providers/github.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAuB,MAAM,aAAa,CAAC;AAGvG,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,MAAM,SAAY;IAElB,eAAe,CACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC3C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,MAAM,GAAG,IAAI;IAIhB,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,cAAc,GAAG,IAAI;IAsBzF,OAAO,CAAC,cAAc;IAoGtB,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO;CAmDvE"}
@@ -152,6 +152,9 @@ export class GitHubWebhookProvider {
152
152
  if (f.author && context.author !== f.author) {
153
153
  return false;
154
154
  }
155
+ // Branch filter: reject events with a non-matching branch, but allow events
156
+ // without a branch (e.g., issues, comments) through. This is intentional —
157
+ // a user filtering branches: ["main"] still wants issue events.
155
158
  if (f.branches?.length && context.branch && !f.branches.includes(context.branch)) {
156
159
  return false;
157
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../../../src/webhooks/providers/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../../src/webhooks/providers/github.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,IAAI,QAAQ,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAExF,MAAM,OAAO,qBAAqB;IAChC,MAAM,GAAG,QAAQ,CAAC;IAElB,eAAe,CACb,OAA2C,EAC3C,OAAe,EACf,OAAgC;QAEhC,OAAO,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC5F,CAAC;IAED,UAAU,CAAC,OAA2C,EAAE,IAAS;QAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,2CAA2C;QAC3C,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAElC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;QACxC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAEvB,MAAM,IAAI,GAA4B;YACpC,MAAM,EAAE,QAAQ;YAChB,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,SAAS;YACvC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAEO,cAAc,CACpB,KAAa,EACb,IAAS,EACT,IAA6B;QAE7B,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,IAAI,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAC;gBACxB,OAAO;oBACL,GAAG,IAAI;oBACP,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;oBAC1B,GAAG,EAAE,KAAK,CAAC,QAAQ;oBACnB,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK;oBACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK;oBAC/B,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;iBAClC,CAAC;YACtB,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC7B,IAAI,CAAC,EAAE;oBAAE,OAAO,IAAI,CAAC;gBACrB,OAAO;oBACL,GAAG,IAAI;oBACP,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;oBACvB,GAAG,EAAE,EAAE,CAAC,QAAQ;oBAChB,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK;oBACtB,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK;oBAC5B,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;oBAChD,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG;iBACH,CAAC;YACtB,CAAC;YAED,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC7B,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO;oBAAE,OAAO,IAAI,CAAC;gBACpC,OAAO;oBACL,GAAG,IAAI;oBACP,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,GAAG,EAAE,OAAO,CAAC,QAAQ;oBACrB,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK;oBACzB,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;oBAC/B,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;iBAClC,CAAC;YACtB,CAAC;YAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM;oBAAE,OAAO,IAAI,CAAC;gBAChC,OAAO;oBACL,GAAG,IAAI;oBACP,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,GAAG,EAAE,MAAM,CAAC,QAAQ;oBACpB,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK;oBACtB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;oBAC9B,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG;iBACH,CAAC;YACtB,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;gBAC9C,OAAO;oBACL,GAAG,IAAI;oBACP,MAAM;oBACN,GAAG,EAAE,IAAI,CAAC,OAAO;oBACjB,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO;oBAChC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI;iBAC9C,CAAC;YACtB,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC9B,IAAI,CAAC,GAAG;oBAAE,OAAO,IAAI,CAAC;gBACtB,OAAO;oBACL,GAAG,IAAI;oBACP,KAAK,EAAE,GAAG,CAAC,IAAI;oBACf,GAAG,EAAE,GAAG,CAAC,QAAQ;oBACjB,MAAM,EAAE,GAAG,CAAC,WAAW;oBACvB,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK;iBACP,CAAC;YACtB,CAAC;YAED;gBACE,mDAAmD;gBACnD,OAAO;oBACL,GAAG,IAAI;oBACP,KAAK,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;iBACV,CAAC;QACxB,CAAC;IACH,CAAC;IAED,aAAa,CAAC,OAAuB,EAAE,MAAqB;QAC1D,MAAM,CAAC,GAAG,MAA6B,CAAC;QAExC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,4DAA4D;QAC5D,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,wFAAwF;QACxF,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACrB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;YAC3C,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,IAAI,CAAC,gBAAgB;gBAAE,OAAO,KAAK,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,4EAA4E;QAC5E,2EAA2E;QAC3E,gEAAgE;QAChE,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACjF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@action-llama/action-llama",
3
- "version": "0.11.1",
3
+ "version": "0.11.3",
4
4
  "description": "Automated development agents triggered by cron or webhooks. BYOM — bring your own model.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -51,10 +51,10 @@
51
51
  "test:coverage": "vitest run --coverage"
52
52
  },
53
53
  "dependencies": {
54
- "@aws-sdk/client-xray": "^3.1003.0",
55
54
  "@aws-sdk/client-apprunner": "^3.1006.0",
56
55
  "@aws-sdk/client-cloudwatch-logs": "^3.1003.0",
57
56
  "@aws-sdk/client-codebuild": "^3.1004.0",
57
+ "@aws-sdk/client-dynamodb": "^3.1009.0",
58
58
  "@aws-sdk/client-ec2": "^3.1003.0",
59
59
  "@aws-sdk/client-ecr": "^3.1003.0",
60
60
  "@aws-sdk/client-ecs": "^3.1003.0",
@@ -63,6 +63,8 @@
63
63
  "@aws-sdk/client-s3": "^3.1004.0",
64
64
  "@aws-sdk/client-secrets-manager": "^3.1003.0",
65
65
  "@aws-sdk/client-sts": "^3.1003.0",
66
+ "@aws-sdk/client-xray": "^3.1003.0",
67
+ "@aws-sdk/lib-dynamodb": "^3.1009.0",
66
68
  "@hono/node-server": "^1.19.11",
67
69
  "@inquirer/prompts": "^7",
68
70
  "@mariozechner/pi-ai": "^0.56.1",
@@ -74,6 +76,7 @@
74
76
  "@opentelemetry/instrumentation-http": "^0.54.0",
75
77
  "@opentelemetry/propagator-aws-xray": "^1.25.1",
76
78
  "@opentelemetry/sdk-node": "^0.55.0",
79
+ "better-sqlite3": "^12.8.0",
77
80
  "commander": "^14.0.3",
78
81
  "croner": "latest",
79
82
  "hono": "^4.12.5",
@@ -86,6 +89,7 @@
86
89
  "devDependencies": {
87
90
  "@changesets/changelog-github": "^0.6.0",
88
91
  "@changesets/cli": "^2.30.0",
92
+ "@types/better-sqlite3": "^7.6.13",
89
93
  "@types/react": "^19.2.14",
90
94
  "@vitest/coverage-v8": "^4.0.18",
91
95
  "ink-testing-library": "^4.0.0",