@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
package/dist/shared/config.d.ts
CHANGED
|
@@ -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":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/config.js
CHANGED
|
@@ -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
|
-
|
|
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(
|
|
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":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA0G1C,kBAAkB;AAElB,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACvD,IAAI,MAAM,GAAiB,EAAE,CAAC;IAE9B,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,GAAG,SAAS,CAAC,GAAG,CAA4B,CAAC;IACrD,CAAC;IAED,+CAA+C;IAC/C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,SAAS,GAAG;YACjB,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,MAAM;SACjB,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAQ;IACnC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,IAAI,WAAW,CAAC,2CAA2C,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,SAAS,CAAU,CAAC;QACrH,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;QAClG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,WAAW,CACnB,gDAAgD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC/F,oCAAoC,CACrC,CAAC;QACJ,CAAC;QACD,OAAO,GAAqB,CAAC;IAC/B,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,gBAAgB,CAAU,CAAC;QACzF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,WAAW,CACnB,gDAAgD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC/F,oCAAoC,CACrC,CAAC;QACJ,CAAC;QACD,OAAO,GAA0B,CAAC;IACpC,CAAC;IAED,MAAM,IAAI,WAAW,CAAC,4BAA4B,GAAG,CAAC,QAAQ,8BAA8B,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,SAAiB;IACpE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAExD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,WAAW,CAAC,6BAA6B,QAAQ,GAAG,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAA2B,CAAC;IACxD,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;IAExB,8DAA8D;IAC9D,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,kBAAkB,GAAG,yCAAyC,CAAC;AAErE,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC9B,MAAM,IAAI,WAAW,CACnB,eAAe,IAAI,wCAAwC,CAC5D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,WAAW,CACnB,eAAe,IAAI,8GAA8G,CAClI,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAmB;IACrD,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/B,mEAAmE;IACnE,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC;QAAE,OAAO;IAE/B,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,WAAW,CACnB,UAAU,MAAM,CAAC,IAAI,4CAA4C,CAClE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,WAAmB;IAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,MAAM,CAAC;IAE5C,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,MAAM,CAAC;IAE3C,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5C,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QAClC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACpC,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YAAE,SAAS;QACjD,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC"}
|
package/dist/shared/paths.js
CHANGED
|
@@ -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
|
package/dist/shared/paths.js.map
CHANGED
|
@@ -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;
|
|
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;
|
|
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":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@action-llama/action-llama",
|
|
3
|
-
"version": "0.11.
|
|
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",
|