@action-llama/action-llama 0.9.2 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +56 -28
- package/README.md +1 -1
- package/dist/agents/container-entry.d.ts +31 -0
- package/dist/agents/container-entry.d.ts.map +1 -1
- package/dist/agents/container-entry.js +83 -62
- package/dist/agents/container-entry.js.map +1 -1
- package/dist/agents/container-runner.d.ts +3 -4
- package/dist/agents/container-runner.d.ts.map +1 -1
- package/dist/agents/container-runner.js +21 -33
- package/dist/agents/container-runner.js.map +1 -1
- package/dist/agents/execution-engine.d.ts +17 -0
- package/dist/agents/execution-engine.d.ts.map +1 -0
- package/dist/agents/execution-engine.js +196 -0
- package/dist/agents/execution-engine.js.map +1 -0
- package/dist/agents/git-environment.d.ts +18 -0
- package/dist/agents/git-environment.d.ts.map +1 -0
- package/dist/agents/git-environment.js +63 -0
- package/dist/agents/git-environment.js.map +1 -0
- package/dist/agents/lambda-handler.d.ts +2 -5
- package/dist/agents/lambda-handler.d.ts.map +1 -1
- package/dist/agents/lambda-handler.js +9 -10
- package/dist/agents/lambda-handler.js.map +1 -1
- package/dist/agents/prompt.d.ts +4 -2
- package/dist/agents/prompt.d.ts.map +1 -1
- package/dist/agents/prompt.js +57 -5
- package/dist/agents/prompt.js.map +1 -1
- package/dist/agents/runner.d.ts +7 -1
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +54 -25
- package/dist/agents/runner.js.map +1 -1
- package/dist/agents/signals.d.ts +34 -0
- package/dist/agents/signals.d.ts.map +1 -0
- package/dist/agents/signals.js +116 -0
- package/dist/agents/signals.js.map +1 -0
- package/dist/agents/status-reporter.d.ts +34 -0
- package/dist/agents/status-reporter.d.ts.map +1 -0
- package/dist/agents/status-reporter.js +64 -0
- package/dist/agents/status-reporter.js.map +1 -0
- package/dist/cli/commands/chat.js +2 -2
- package/dist/cli/commands/chat.js.map +1 -1
- package/dist/cli/commands/creds.js +3 -3
- package/dist/cli/commands/creds.js.map +1 -1
- package/dist/cli/commands/doctor.js +3 -3
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/kill.d.ts +4 -0
- package/dist/cli/commands/kill.d.ts.map +1 -0
- package/dist/cli/commands/kill.js +30 -0
- package/dist/cli/commands/kill.js.map +1 -0
- package/dist/cli/commands/new.js +2 -2
- package/dist/cli/commands/new.js.map +1 -1
- package/dist/cli/commands/pause.d.ts +4 -0
- package/dist/cli/commands/pause.d.ts.map +1 -0
- package/dist/cli/commands/pause.js +30 -0
- package/dist/cli/commands/pause.js.map +1 -0
- package/dist/cli/commands/resume.d.ts +4 -0
- package/dist/cli/commands/resume.d.ts.map +1 -0
- package/dist/cli/commands/resume.js +30 -0
- package/dist/cli/commands/resume.js.map +1 -0
- package/dist/cli/commands/run.d.ts +0 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +7 -18
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/start.d.ts +0 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +7 -8
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +74 -0
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/main.js +27 -4
- package/dist/cli/main.js.map +1 -1
- package/dist/cloud/scheduler-image.d.ts.map +1 -1
- package/dist/cloud/scheduler-image.js +9 -3
- package/dist/cloud/scheduler-image.js.map +1 -1
- package/dist/credentials/prompter.js +3 -3
- package/dist/credentials/prompter.js.map +1 -1
- package/dist/docker/aws-shared.d.ts.map +1 -1
- package/dist/docker/aws-shared.js +42 -19
- package/dist/docker/aws-shared.js.map +1 -1
- package/dist/docker/lambda-runtime.d.ts +2 -0
- package/dist/docker/lambda-runtime.d.ts.map +1 -1
- package/dist/docker/lambda-runtime.js +40 -14
- package/dist/docker/lambda-runtime.js.map +1 -1
- package/dist/docker/local-runtime.d.ts +2 -0
- package/dist/docker/local-runtime.d.ts.map +1 -1
- package/dist/docker/local-runtime.js +31 -0
- package/dist/docker/local-runtime.js.map +1 -1
- package/dist/docker/runtime.d.ts +4 -0
- package/dist/docker/runtime.d.ts.map +1 -1
- package/dist/gateway/call-store.d.ts +39 -0
- package/dist/gateway/call-store.d.ts.map +1 -0
- package/dist/gateway/call-store.js +101 -0
- package/dist/gateway/call-store.js.map +1 -0
- package/dist/gateway/index.d.ts +8 -0
- package/dist/gateway/index.d.ts.map +1 -1
- package/dist/gateway/index.js +23 -2
- package/dist/gateway/index.js.map +1 -1
- package/dist/gateway/routes/calls.d.ts +17 -0
- package/dist/gateway/routes/calls.d.ts.map +1 -0
- package/dist/gateway/routes/calls.js +63 -0
- package/dist/gateway/routes/calls.js.map +1 -0
- package/dist/gateway/routes/control.d.ts +10 -0
- package/dist/gateway/routes/control.d.ts.map +1 -0
- package/dist/gateway/routes/control.js +64 -0
- package/dist/gateway/routes/control.js.map +1 -0
- package/dist/gateway/routes/locks.d.ts.map +1 -1
- package/dist/gateway/routes/locks.js +12 -0
- package/dist/gateway/routes/locks.js.map +1 -1
- package/dist/gateway/routes/signals.d.ts +11 -0
- package/dist/gateway/routes/signals.d.ts.map +1 -0
- package/dist/gateway/routes/signals.js +103 -0
- package/dist/gateway/routes/signals.js.map +1 -0
- package/dist/gateway/types.d.ts +16 -0
- package/dist/gateway/types.d.ts.map +1 -1
- package/dist/scheduler/config-validator.d.ts +18 -0
- package/dist/scheduler/config-validator.d.ts.map +1 -0
- package/dist/scheduler/config-validator.js +53 -0
- package/dist/scheduler/config-validator.js.map +1 -0
- package/dist/scheduler/cron-manager.d.ts +14 -0
- package/dist/scheduler/cron-manager.d.ts.map +1 -0
- package/dist/scheduler/cron-manager.js +75 -0
- package/dist/scheduler/cron-manager.js.map +1 -0
- package/dist/scheduler/event-queue.d.ts +7 -4
- package/dist/scheduler/event-queue.d.ts.map +1 -1
- package/dist/scheduler/event-queue.js +4 -2
- package/dist/scheduler/event-queue.js.map +1 -1
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +126 -115
- package/dist/scheduler/index.js.map +1 -1
- package/dist/scheduler/runner-pool.d.ts +20 -0
- package/dist/scheduler/runner-pool.d.ts.map +1 -1
- package/dist/scheduler/runner-pool.js +32 -4
- package/dist/scheduler/runner-pool.js.map +1 -1
- package/dist/scheduler/runtime-factory.d.ts +11 -0
- package/dist/scheduler/runtime-factory.d.ts.map +1 -0
- package/dist/scheduler/runtime-factory.js +98 -0
- package/dist/scheduler/runtime-factory.js.map +1 -0
- package/dist/scheduler/shutdown-handler.d.ts +16 -0
- package/dist/scheduler/shutdown-handler.d.ts.map +1 -0
- package/dist/scheduler/shutdown-handler.js +44 -0
- package/dist/scheduler/shutdown-handler.js.map +1 -0
- package/dist/scheduler/trigger-dispatcher.d.ts +12 -0
- package/dist/scheduler/trigger-dispatcher.d.ts.map +1 -0
- package/dist/scheduler/trigger-dispatcher.js +46 -0
- package/dist/scheduler/trigger-dispatcher.js.map +1 -0
- package/dist/scheduler/types.d.ts +8 -0
- package/dist/scheduler/types.d.ts.map +1 -1
- package/dist/scheduler/webhook-setup.d.ts +28 -0
- package/dist/scheduler/webhook-setup.d.ts.map +1 -0
- package/dist/scheduler/webhook-setup.js +146 -0
- package/dist/scheduler/webhook-setup.js.map +1 -0
- package/dist/setup/prompts.js +4 -4
- package/dist/setup/prompts.js.map +1 -1
- package/dist/shared/config.d.ts +4 -0
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/credentials.d.ts +11 -31
- package/dist/shared/credentials.d.ts.map +1 -1
- package/dist/shared/credentials.js +22 -87
- package/dist/shared/credentials.js.map +1 -1
- package/dist/shared/exit-codes.d.ts +18 -0
- package/dist/shared/exit-codes.d.ts.map +1 -0
- package/dist/shared/exit-codes.js +40 -0
- package/dist/shared/exit-codes.js.map +1 -0
- package/dist/shared/filesystem-backend.d.ts +4 -0
- package/dist/shared/filesystem-backend.d.ts.map +1 -1
- package/dist/shared/filesystem-backend.js +35 -0
- package/dist/shared/filesystem-backend.js.map +1 -1
- package/dist/tui/status-tracker.d.ts +23 -0
- package/dist/tui/status-tracker.d.ts.map +1 -1
- package/dist/tui/status-tracker.js +36 -0
- package/dist/tui/status-tracker.js.map +1 -1
- package/docker/Dockerfile +6 -8
- package/docker/bin/al-call +8 -0
- package/docker/bin/al-check +4 -0
- package/docker/bin/al-exit +4 -0
- package/docker/bin/al-rerun +8 -0
- package/docker/bin/al-return +14 -0
- package/docker/bin/al-shutdown +5 -0
- package/docker/bin/al-status +9 -0
- package/docker/bin/al-wait +29 -0
- package/docker/bin/rlock +5 -0
- package/docker/bin/rlock-heartbeat +5 -0
- package/docker/bin/runlock +5 -0
- package/package.json +1 -1
- package/skills/environment.md +1 -1
- package/skills/resource-locks.md +1 -1
- package/skills/signals.md +67 -25
|
@@ -24,35 +24,35 @@ export declare function parseCredentialRef(ref: string): {
|
|
|
24
24
|
*/
|
|
25
25
|
export declare function credentialDir(type: string, instance: string): string;
|
|
26
26
|
/**
|
|
27
|
-
* Load a single field from a credential instance
|
|
27
|
+
* Load a single field from a credential instance.
|
|
28
28
|
*/
|
|
29
|
-
export declare function loadCredentialField(type: string, instance: string, field: string): string | undefined
|
|
29
|
+
export declare function loadCredentialField(type: string, instance: string, field: string): Promise<string | undefined>;
|
|
30
30
|
/**
|
|
31
|
-
* Load all fields from a credential instance
|
|
31
|
+
* Load all fields from a credential instance.
|
|
32
32
|
* Returns undefined if the instance directory does not exist.
|
|
33
33
|
*/
|
|
34
|
-
export declare function loadCredentialFields(type: string, instance: string): Record<string, string> | undefined
|
|
34
|
+
export declare function loadCredentialFields(type: string, instance: string): Promise<Record<string, string> | undefined>;
|
|
35
35
|
/**
|
|
36
|
-
* Write a single field to a credential instance
|
|
36
|
+
* Write a single field to a credential instance.
|
|
37
37
|
*/
|
|
38
|
-
export declare function writeCredentialField(type: string, instance: string, field: string, value: string): void
|
|
38
|
+
export declare function writeCredentialField(type: string, instance: string, field: string, value: string): Promise<void>;
|
|
39
39
|
/**
|
|
40
|
-
* Write all fields to a credential instance
|
|
40
|
+
* Write all fields to a credential instance.
|
|
41
41
|
*/
|
|
42
|
-
export declare function writeCredentialFields(type: string, instance: string, fields: Record<string, string>): void
|
|
42
|
+
export declare function writeCredentialFields(type: string, instance: string, fields: Record<string, string>): Promise<void>;
|
|
43
43
|
/**
|
|
44
44
|
* Check if a credential instance exists (has at least one field file).
|
|
45
45
|
*/
|
|
46
|
-
export declare function credentialExists(type: string, instance: string): boolean
|
|
46
|
+
export declare function credentialExists(type: string, instance: string): Promise<boolean>;
|
|
47
47
|
/**
|
|
48
48
|
* List all instances of a credential type.
|
|
49
49
|
* Returns an array of instance names (subdirectory names).
|
|
50
50
|
*/
|
|
51
|
-
export declare function listCredentialInstances(type: string): string[]
|
|
51
|
+
export declare function listCredentialInstances(type: string): Promise<string[]>;
|
|
52
52
|
/**
|
|
53
53
|
* Require that a credential instance exists. Throws if missing.
|
|
54
54
|
*/
|
|
55
|
-
export declare function requireCredentialRef(ref: string): void
|
|
55
|
+
export declare function requireCredentialRef(ref: string): Promise<void>;
|
|
56
56
|
/**
|
|
57
57
|
* Encode a credential part (type, instance, or field) for use in an env var name.
|
|
58
58
|
* Replaces any character that isn't [a-zA-Z0-9_] with _xHH (hex code).
|
|
@@ -63,24 +63,4 @@ export declare function sanitizeEnvPart(part: string): string;
|
|
|
63
63
|
* Reverses the encoding done by sanitizeEnvPart.
|
|
64
64
|
*/
|
|
65
65
|
export declare function unsanitizeEnvPart(encoded: string): string;
|
|
66
|
-
/**
|
|
67
|
-
* Load a credential field via the default backend (async).
|
|
68
|
-
*/
|
|
69
|
-
export declare function backendLoadField(type: string, instance: string, field: string): Promise<string | undefined>;
|
|
70
|
-
/**
|
|
71
|
-
* Load all fields for a credential instance via the default backend (async).
|
|
72
|
-
*/
|
|
73
|
-
export declare function backendLoadFields(type: string, instance: string): Promise<Record<string, string> | undefined>;
|
|
74
|
-
/**
|
|
75
|
-
* Check if a credential instance exists via the default backend (async).
|
|
76
|
-
*/
|
|
77
|
-
export declare function backendCredentialExists(type: string, instance: string): Promise<boolean>;
|
|
78
|
-
/**
|
|
79
|
-
* List instances of a credential type via the default backend (async).
|
|
80
|
-
*/
|
|
81
|
-
export declare function backendListInstances(type: string): Promise<string[]>;
|
|
82
|
-
/**
|
|
83
|
-
* Require that a credential instance exists via the default backend (async).
|
|
84
|
-
*/
|
|
85
|
-
export declare function backendRequireCredentialRef(ref: string): Promise<void>;
|
|
86
66
|
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/shared/credentials.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/shared/credentials.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAMjE;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,iBAAiB,CAErD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAIlF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpE;AAKD;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAEpH;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CAEtH;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtH;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzH;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEvF;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE7E;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQrE;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIzD"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { readFileSync, existsSync, writeFileSync, mkdirSync, readdirSync, statSync } from "fs";
|
|
2
1
|
import { resolve } from "path";
|
|
3
2
|
import { CREDENTIALS_DIR } from "./paths.js";
|
|
4
3
|
import { FilesystemBackend } from "./filesystem-backend.js";
|
|
@@ -38,81 +37,54 @@ export function parseCredentialRef(ref) {
|
|
|
38
37
|
export function credentialDir(type, instance) {
|
|
39
38
|
return resolve(CREDENTIALS_DIR, type, instance);
|
|
40
39
|
}
|
|
41
|
-
// ---
|
|
42
|
-
// These
|
|
40
|
+
// --- Unified async API (backend-aware) ---
|
|
41
|
+
// These functions delegate to the default backend (local filesystem or remote).
|
|
43
42
|
/**
|
|
44
|
-
* Load a single field from a credential instance
|
|
43
|
+
* Load a single field from a credential instance.
|
|
45
44
|
*/
|
|
46
|
-
export function loadCredentialField(type, instance, field) {
|
|
47
|
-
|
|
48
|
-
if (!existsSync(filepath))
|
|
49
|
-
return undefined;
|
|
50
|
-
return readFileSync(filepath, "utf-8").trim();
|
|
45
|
+
export async function loadCredentialField(type, instance, field) {
|
|
46
|
+
return _defaultBackend.read(type, instance, field);
|
|
51
47
|
}
|
|
52
48
|
/**
|
|
53
|
-
* Load all fields from a credential instance
|
|
49
|
+
* Load all fields from a credential instance.
|
|
54
50
|
* Returns undefined if the instance directory does not exist.
|
|
55
51
|
*/
|
|
56
|
-
export function loadCredentialFields(type, instance) {
|
|
57
|
-
|
|
58
|
-
if (!existsSync(dir))
|
|
59
|
-
return undefined;
|
|
60
|
-
const result = {};
|
|
61
|
-
for (const file of readdirSync(dir)) {
|
|
62
|
-
const filepath = resolve(dir, file);
|
|
63
|
-
result[file] = readFileSync(filepath, "utf-8").trim();
|
|
64
|
-
}
|
|
65
|
-
return Object.keys(result).length > 0 ? result : undefined;
|
|
52
|
+
export async function loadCredentialFields(type, instance) {
|
|
53
|
+
return _defaultBackend.readAll(type, instance);
|
|
66
54
|
}
|
|
67
55
|
/**
|
|
68
|
-
* Write a single field to a credential instance
|
|
56
|
+
* Write a single field to a credential instance.
|
|
69
57
|
*/
|
|
70
|
-
export function writeCredentialField(type, instance, field, value) {
|
|
71
|
-
|
|
72
|
-
mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
73
|
-
writeFileSync(resolve(dir, field), value + "\n", { mode: 0o600 });
|
|
58
|
+
export async function writeCredentialField(type, instance, field, value) {
|
|
59
|
+
return _defaultBackend.write(type, instance, field, value);
|
|
74
60
|
}
|
|
75
61
|
/**
|
|
76
|
-
* Write all fields to a credential instance
|
|
62
|
+
* Write all fields to a credential instance.
|
|
77
63
|
*/
|
|
78
|
-
export function writeCredentialFields(type, instance, fields) {
|
|
79
|
-
|
|
80
|
-
writeCredentialField(type, instance, field, value);
|
|
81
|
-
}
|
|
64
|
+
export async function writeCredentialFields(type, instance, fields) {
|
|
65
|
+
return _defaultBackend.writeAll(type, instance, fields);
|
|
82
66
|
}
|
|
83
67
|
/**
|
|
84
68
|
* Check if a credential instance exists (has at least one field file).
|
|
85
69
|
*/
|
|
86
|
-
export function credentialExists(type, instance) {
|
|
87
|
-
|
|
88
|
-
if (!existsSync(dir))
|
|
89
|
-
return false;
|
|
90
|
-
return readdirSync(dir).length > 0;
|
|
70
|
+
export async function credentialExists(type, instance) {
|
|
71
|
+
return _defaultBackend.exists(type, instance);
|
|
91
72
|
}
|
|
92
73
|
/**
|
|
93
74
|
* List all instances of a credential type.
|
|
94
75
|
* Returns an array of instance names (subdirectory names).
|
|
95
76
|
*/
|
|
96
|
-
export function listCredentialInstances(type) {
|
|
97
|
-
|
|
98
|
-
if (!existsSync(dir))
|
|
99
|
-
return [];
|
|
100
|
-
return readdirSync(dir).filter((entry) => {
|
|
101
|
-
try {
|
|
102
|
-
return statSync(resolve(dir, entry)).isDirectory();
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
});
|
|
77
|
+
export async function listCredentialInstances(type) {
|
|
78
|
+
return _defaultBackend.listInstances(type);
|
|
108
79
|
}
|
|
109
80
|
/**
|
|
110
81
|
* Require that a credential instance exists. Throws if missing.
|
|
111
82
|
*/
|
|
112
|
-
export function requireCredentialRef(ref) {
|
|
83
|
+
export async function requireCredentialRef(ref) {
|
|
113
84
|
const { type, instance } = parseCredentialRef(ref);
|
|
114
|
-
|
|
115
|
-
|
|
85
|
+
const exists = await _defaultBackend.exists(type, instance);
|
|
86
|
+
if (!exists) {
|
|
87
|
+
throw new Error(`Credential "${ref}" not found. Run 'al doctor' to configure it.`);
|
|
116
88
|
}
|
|
117
89
|
}
|
|
118
90
|
// --- Env-var-safe encoding for credential parts ---
|
|
@@ -136,41 +108,4 @@ export function unsanitizeEnvPart(encoded) {
|
|
|
136
108
|
return String.fromCharCode(parseInt(hex, 16));
|
|
137
109
|
});
|
|
138
110
|
}
|
|
139
|
-
// --- Async backend-aware functions ---
|
|
140
|
-
// These delegate to the default backend (local filesystem or remote).
|
|
141
|
-
// Use these in code paths that support --remote.
|
|
142
|
-
/**
|
|
143
|
-
* Load a credential field via the default backend (async).
|
|
144
|
-
*/
|
|
145
|
-
export async function backendLoadField(type, instance, field) {
|
|
146
|
-
return _defaultBackend.read(type, instance, field);
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Load all fields for a credential instance via the default backend (async).
|
|
150
|
-
*/
|
|
151
|
-
export async function backendLoadFields(type, instance) {
|
|
152
|
-
return _defaultBackend.readAll(type, instance);
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Check if a credential instance exists via the default backend (async).
|
|
156
|
-
*/
|
|
157
|
-
export async function backendCredentialExists(type, instance) {
|
|
158
|
-
return _defaultBackend.exists(type, instance);
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* List instances of a credential type via the default backend (async).
|
|
162
|
-
*/
|
|
163
|
-
export async function backendListInstances(type) {
|
|
164
|
-
return _defaultBackend.listInstances(type);
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Require that a credential instance exists via the default backend (async).
|
|
168
|
-
*/
|
|
169
|
-
export async function backendRequireCredentialRef(ref) {
|
|
170
|
-
const { type, instance } = parseCredentialRef(ref);
|
|
171
|
-
const exists = await _defaultBackend.exists(type, instance);
|
|
172
|
-
if (!exists) {
|
|
173
|
-
throw new Error(`Credential "${ref}" not found. Run 'al doctor' to configure it.`);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
111
|
//# sourceMappingURL=credentials.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/shared/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/shared/credentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard exit codes for agent termination
|
|
3
|
+
*/
|
|
4
|
+
export declare enum ExitCode {
|
|
5
|
+
SUCCESS = 0,
|
|
6
|
+
AUTH_FAILURE = 10,
|
|
7
|
+
PERMISSION_DENIED = 11,
|
|
8
|
+
RATE_LIMITED = 12,
|
|
9
|
+
INVALID_CONFIG = 13,
|
|
10
|
+
DEPENDENCY_ERROR = 14,
|
|
11
|
+
UNRECOVERABLE_ERROR = 15,
|
|
12
|
+
USER_ABORT = 16
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get a human-readable message for an exit code
|
|
16
|
+
*/
|
|
17
|
+
export declare function getExitCodeMessage(code: number): string;
|
|
18
|
+
//# sourceMappingURL=exit-codes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../../src/shared/exit-codes.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,QAAQ;IAClB,OAAO,IAAI;IACX,YAAY,KAAK;IACjB,iBAAiB,KAAK;IACtB,YAAY,KAAK;IACjB,cAAc,KAAK;IACnB,gBAAgB,KAAK;IACrB,mBAAmB,KAAK;IACxB,UAAU,KAAK;CAChB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBvD"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard exit codes for agent termination
|
|
3
|
+
*/
|
|
4
|
+
export var ExitCode;
|
|
5
|
+
(function (ExitCode) {
|
|
6
|
+
ExitCode[ExitCode["SUCCESS"] = 0] = "SUCCESS";
|
|
7
|
+
ExitCode[ExitCode["AUTH_FAILURE"] = 10] = "AUTH_FAILURE";
|
|
8
|
+
ExitCode[ExitCode["PERMISSION_DENIED"] = 11] = "PERMISSION_DENIED";
|
|
9
|
+
ExitCode[ExitCode["RATE_LIMITED"] = 12] = "RATE_LIMITED";
|
|
10
|
+
ExitCode[ExitCode["INVALID_CONFIG"] = 13] = "INVALID_CONFIG";
|
|
11
|
+
ExitCode[ExitCode["DEPENDENCY_ERROR"] = 14] = "DEPENDENCY_ERROR";
|
|
12
|
+
ExitCode[ExitCode["UNRECOVERABLE_ERROR"] = 15] = "UNRECOVERABLE_ERROR";
|
|
13
|
+
ExitCode[ExitCode["USER_ABORT"] = 16] = "USER_ABORT";
|
|
14
|
+
})(ExitCode || (ExitCode = {}));
|
|
15
|
+
/**
|
|
16
|
+
* Get a human-readable message for an exit code
|
|
17
|
+
*/
|
|
18
|
+
export function getExitCodeMessage(code) {
|
|
19
|
+
switch (code) {
|
|
20
|
+
case ExitCode.SUCCESS:
|
|
21
|
+
return 'Success';
|
|
22
|
+
case ExitCode.AUTH_FAILURE:
|
|
23
|
+
return 'Authentication/credentials failure';
|
|
24
|
+
case ExitCode.PERMISSION_DENIED:
|
|
25
|
+
return 'Permission/access denied';
|
|
26
|
+
case ExitCode.RATE_LIMITED:
|
|
27
|
+
return 'Rate limit exceeded';
|
|
28
|
+
case ExitCode.INVALID_CONFIG:
|
|
29
|
+
return 'Configuration error';
|
|
30
|
+
case ExitCode.DEPENDENCY_ERROR:
|
|
31
|
+
return 'Missing dependency or service error';
|
|
32
|
+
case ExitCode.UNRECOVERABLE_ERROR:
|
|
33
|
+
return 'Unrecoverable error';
|
|
34
|
+
case ExitCode.USER_ABORT:
|
|
35
|
+
return 'User-requested abort';
|
|
36
|
+
default:
|
|
37
|
+
return `Unknown exit code: ${code}`;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=exit-codes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../../src/shared/exit-codes.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,QASX;AATD,WAAY,QAAQ;IAClB,6CAAW,CAAA;IACX,wDAAiB,CAAA;IACjB,kEAAsB,CAAA;IACtB,wDAAiB,CAAA;IACjB,4DAAmB,CAAA;IACnB,gEAAqB,CAAA;IACrB,sEAAwB,CAAA;IACxB,oDAAe,CAAA;AACjB,CAAC,EATW,QAAQ,KAAR,QAAQ,QASnB;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC,OAAO;YACnB,OAAO,SAAS,CAAC;QACnB,KAAK,QAAQ,CAAC,YAAY;YACxB,OAAO,oCAAoC,CAAC;QAC9C,KAAK,QAAQ,CAAC,iBAAiB;YAC7B,OAAO,0BAA0B,CAAC;QACpC,KAAK,QAAQ,CAAC,YAAY;YACxB,OAAO,qBAAqB,CAAC;QAC/B,KAAK,QAAQ,CAAC,cAAc;YAC1B,OAAO,qBAAqB,CAAC;QAC/B,KAAK,QAAQ,CAAC,gBAAgB;YAC5B,OAAO,qCAAqC,CAAC;QAC/C,KAAK,QAAQ,CAAC,mBAAmB;YAC/B,OAAO,qBAAqB,CAAC;QAC/B,KAAK,QAAQ,CAAC,UAAU;YACtB,OAAO,sBAAsB,CAAC;QAChC;YACE,OAAO,sBAAsB,IAAI,EAAE,CAAC;IACxC,CAAC;AACH,CAAC"}
|
|
@@ -7,6 +7,10 @@ import type { CredentialBackend, CredentialEntry } from "./credential-backend.js
|
|
|
7
7
|
export declare class FilesystemBackend implements CredentialBackend {
|
|
8
8
|
private baseDir;
|
|
9
9
|
constructor(baseDir?: string);
|
|
10
|
+
static readSync(type: string, instance: string, field: string, baseDir?: string): string | undefined;
|
|
11
|
+
static writeSync(type: string, instance: string, field: string, value: string, baseDir?: string): void;
|
|
12
|
+
static readAllSync(type: string, instance: string, baseDir?: string): Record<string, string> | undefined;
|
|
13
|
+
static existsSync(type: string, instance: string, baseDir?: string): boolean;
|
|
10
14
|
read(type: string, instance: string, field: string): Promise<string | undefined>;
|
|
11
15
|
write(type: string, instance: string, field: string, value: string): Promise<void>;
|
|
12
16
|
list(): Promise<CredentialEntry[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem-backend.d.ts","sourceRoot":"","sources":["../../src/shared/filesystem-backend.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAElF;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,iBAAiB;IACzD,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"filesystem-backend.d.ts","sourceRoot":"","sources":["../../src/shared/filesystem-backend.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAElF;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,iBAAiB;IACzD,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,CAAC,EAAE,MAAM;IAK5B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOpG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAOtG,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;IAcxG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO;IAOtE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAMhF,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlF,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAuBlC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMxD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAapF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvF,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAKrD"}
|
|
@@ -11,6 +11,41 @@ export class FilesystemBackend {
|
|
|
11
11
|
constructor(baseDir) {
|
|
12
12
|
this.baseDir = baseDir || CREDENTIALS_DIR;
|
|
13
13
|
}
|
|
14
|
+
// Static sync methods for compatibility during migration
|
|
15
|
+
static readSync(type, instance, field, baseDir) {
|
|
16
|
+
const dir = baseDir || CREDENTIALS_DIR;
|
|
17
|
+
const filepath = resolve(dir, type, instance, field);
|
|
18
|
+
if (!existsSync(filepath))
|
|
19
|
+
return undefined;
|
|
20
|
+
return readFileSync(filepath, "utf-8").trim();
|
|
21
|
+
}
|
|
22
|
+
static writeSync(type, instance, field, value, baseDir) {
|
|
23
|
+
const dir = baseDir || CREDENTIALS_DIR;
|
|
24
|
+
const instDir = resolve(dir, type, instance);
|
|
25
|
+
mkdirSync(instDir, { recursive: true, mode: 0o700 });
|
|
26
|
+
writeFileSync(resolve(instDir, field), value + "\n", { mode: 0o600 });
|
|
27
|
+
}
|
|
28
|
+
static readAllSync(type, instance, baseDir) {
|
|
29
|
+
const dir = baseDir || CREDENTIALS_DIR;
|
|
30
|
+
const instDir = resolve(dir, type, instance);
|
|
31
|
+
if (!existsSync(instDir))
|
|
32
|
+
return undefined;
|
|
33
|
+
const result = {};
|
|
34
|
+
for (const file of readdirSync(instDir)) {
|
|
35
|
+
const filepath = resolve(instDir, file);
|
|
36
|
+
if (safeIsDir(filepath))
|
|
37
|
+
continue;
|
|
38
|
+
result[file] = readFileSync(filepath, "utf-8").trim();
|
|
39
|
+
}
|
|
40
|
+
return Object.keys(result).length > 0 ? result : undefined;
|
|
41
|
+
}
|
|
42
|
+
static existsSync(type, instance, baseDir) {
|
|
43
|
+
const dir = baseDir || CREDENTIALS_DIR;
|
|
44
|
+
const instDir = resolve(dir, type, instance);
|
|
45
|
+
if (!existsSync(instDir))
|
|
46
|
+
return false;
|
|
47
|
+
return readdirSync(instDir).length > 0;
|
|
48
|
+
}
|
|
14
49
|
async read(type, instance, field) {
|
|
15
50
|
const filepath = resolve(this.baseDir, type, instance, field);
|
|
16
51
|
if (!existsSync(filepath))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem-backend.js","sourceRoot":"","sources":["../../src/shared/filesystem-backend.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filesystem-backend.js","sourceRoot":"","sources":["../../src/shared/filesystem-backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from "events";
|
|
2
|
+
import type { AgentInstance } from "../scheduler/types.js";
|
|
2
3
|
export interface AgentStatus {
|
|
3
4
|
name: string;
|
|
4
5
|
state: "idle" | "running" | "building" | "error";
|
|
@@ -23,6 +24,7 @@ export interface SchedulerInfo {
|
|
|
23
24
|
webhookUrls: string[];
|
|
24
25
|
dashboardUrl?: string;
|
|
25
26
|
startedAt: Date;
|
|
27
|
+
paused: boolean;
|
|
26
28
|
}
|
|
27
29
|
export interface LogLine {
|
|
28
30
|
timestamp: Date;
|
|
@@ -35,6 +37,7 @@ export declare class StatusTracker extends EventEmitter {
|
|
|
35
37
|
private recentLogs;
|
|
36
38
|
private maxLogs;
|
|
37
39
|
private _baseImageStatus;
|
|
40
|
+
private instances;
|
|
38
41
|
registerAgent(name: string, scale?: number): void;
|
|
39
42
|
setAgentState(name: string, state: "idle" | "running" | "building" | "error"): void;
|
|
40
43
|
/** Increment running count and set state to running */
|
|
@@ -57,5 +60,25 @@ export declare class StatusTracker extends EventEmitter {
|
|
|
57
60
|
setBaseImageStatus(text: string | null): void;
|
|
58
61
|
getBaseImageStatus(): string | null;
|
|
59
62
|
getRecentLogs(n?: number): LogLine[];
|
|
63
|
+
/**
|
|
64
|
+
* Register a running agent instance
|
|
65
|
+
*/
|
|
66
|
+
registerInstance(instance: AgentInstance): void;
|
|
67
|
+
/**
|
|
68
|
+
* Unregister an agent instance
|
|
69
|
+
*/
|
|
70
|
+
unregisterInstance(id: string): void;
|
|
71
|
+
/**
|
|
72
|
+
* Get all running instances
|
|
73
|
+
*/
|
|
74
|
+
getInstances(): AgentInstance[];
|
|
75
|
+
/**
|
|
76
|
+
* Set scheduler paused state
|
|
77
|
+
*/
|
|
78
|
+
setPaused(paused: boolean): void;
|
|
79
|
+
/**
|
|
80
|
+
* Get scheduler paused state
|
|
81
|
+
*/
|
|
82
|
+
isPaused(): boolean;
|
|
60
83
|
}
|
|
61
84
|
//# sourceMappingURL=status-tracker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-tracker.d.ts","sourceRoot":"","sources":["../../src/tui/status-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"status-tracker.d.ts","sourceRoot":"","sources":["../../src/tui/status-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ export class StatusTracker extends EventEmitter {
|
|
|
5
5
|
recentLogs = [];
|
|
6
6
|
maxLogs = 100;
|
|
7
7
|
_baseImageStatus = null;
|
|
8
|
+
instances = new Map();
|
|
8
9
|
registerAgent(name, scale = 1) {
|
|
9
10
|
this.agents.set(name, {
|
|
10
11
|
name,
|
|
@@ -165,5 +166,40 @@ export class StatusTracker extends EventEmitter {
|
|
|
165
166
|
getRecentLogs(n = 10) {
|
|
166
167
|
return this.recentLogs.slice(-n);
|
|
167
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Register a running agent instance
|
|
171
|
+
*/
|
|
172
|
+
registerInstance(instance) {
|
|
173
|
+
this.instances.set(instance.id, instance);
|
|
174
|
+
this.emit("update");
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Unregister an agent instance
|
|
178
|
+
*/
|
|
179
|
+
unregisterInstance(id) {
|
|
180
|
+
this.instances.delete(id);
|
|
181
|
+
this.emit("update");
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Get all running instances
|
|
185
|
+
*/
|
|
186
|
+
getInstances() {
|
|
187
|
+
return Array.from(this.instances.values());
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Set scheduler paused state
|
|
191
|
+
*/
|
|
192
|
+
setPaused(paused) {
|
|
193
|
+
if (this.schedulerInfo) {
|
|
194
|
+
this.schedulerInfo.paused = paused;
|
|
195
|
+
this.emit("update");
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Get scheduler paused state
|
|
200
|
+
*/
|
|
201
|
+
isPaused() {
|
|
202
|
+
return this.schedulerInfo?.paused ?? false;
|
|
203
|
+
}
|
|
168
204
|
}
|
|
169
205
|
//# sourceMappingURL=status-tracker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-tracker.js","sourceRoot":"","sources":["../../src/tui/status-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"status-tracker.js","sourceRoot":"","sources":["../../src/tui/status-tracker.ts"],"names":[],"mappings":"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"}
|
package/docker/Dockerfile
CHANGED
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
# syntax=docker/dockerfile:1
|
|
2
|
-
FROM public.ecr.aws/docker/library/node:20-
|
|
2
|
+
FROM public.ecr.aws/docker/library/node:20-alpine
|
|
3
3
|
|
|
4
|
-
RUN
|
|
5
|
-
git \
|
|
6
|
-
curl \
|
|
7
|
-
ca-certificates \
|
|
8
|
-
openssh-client \
|
|
9
|
-
&& rm -rf /var/lib/apt/lists/*
|
|
4
|
+
RUN apk add --no-cache git curl jq ca-certificates openssh-client
|
|
10
5
|
|
|
11
6
|
# Copy application
|
|
12
7
|
WORKDIR /app
|
|
13
8
|
COPY package.json ./
|
|
14
|
-
RUN --mount=type=cache,target=/root/.npm npm install --
|
|
9
|
+
RUN --mount=type=cache,target=/root/.npm npm install --omit=dev --omit=optional
|
|
15
10
|
COPY dist/ ./dist/
|
|
16
11
|
|
|
12
|
+
# Bake shell scripts into image so container-entry doesn't write them at runtime
|
|
13
|
+
COPY docker/bin/ /app/bin/
|
|
14
|
+
|
|
17
15
|
# Use the built-in node user (uid 1000) instead of root
|
|
18
16
|
USER node
|
|
19
17
|
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
if [ -z "$GATEWAY_URL" ]; then echo '{"ok":false,"reason":"no gateway"}'; exit 1; fi
|
|
3
|
+
if [ -z "$1" ]; then echo '{"ok":false,"reason":"usage: echo ctx | al-call <agent>"}'; exit 1; fi
|
|
4
|
+
CONTEXT=$(cat)
|
|
5
|
+
curl -s -X POST "$GATEWAY_URL/calls" \
|
|
6
|
+
-H 'Content-Type: application/json' \
|
|
7
|
+
-d "$(jq -n --arg s "$SHUTDOWN_SECRET" --arg t "$1" --arg c "$CONTEXT" \
|
|
8
|
+
'{secret:$s,targetAgent:$t,context:$c}')"
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
touch "$AL_SIGNAL_DIR/rerun"
|
|
3
|
+
if [ -n "$GATEWAY_URL" ] && [ -n "$SHUTDOWN_SECRET" ]; then
|
|
4
|
+
curl -s -X POST "$GATEWAY_URL/signals/rerun" \
|
|
5
|
+
-H 'Content-Type: application/json' \
|
|
6
|
+
-d '{"secret":"'"$SHUTDOWN_SECRET"'"}' > /dev/null 2>&1 || true
|
|
7
|
+
fi
|
|
8
|
+
echo '{"ok":true}'
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
if [ $# -gt 0 ]; then
|
|
3
|
+
VALUE="$*"
|
|
4
|
+
else
|
|
5
|
+
VALUE=$(cat)
|
|
6
|
+
fi
|
|
7
|
+
printf '%s' "$VALUE" > "$AL_SIGNAL_DIR/return"
|
|
8
|
+
if [ -n "$GATEWAY_URL" ] && [ -n "$SHUTDOWN_SECRET" ]; then
|
|
9
|
+
PAYLOAD=$(printf '{"secret":"%s","value":%s}' "$SHUTDOWN_SECRET" "$(printf '%s' "$VALUE" | jq -Rs .)")
|
|
10
|
+
curl -s -X POST "$GATEWAY_URL/signals/return" \
|
|
11
|
+
-H 'Content-Type: application/json' \
|
|
12
|
+
-d "$PAYLOAD" > /dev/null 2>&1 || true
|
|
13
|
+
fi
|
|
14
|
+
echo '{"ok":true}'
|