@action-llama/action-llama 0.27.4 → 0.28.0
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/dist/agents/credential-setup.d.ts +0 -1
- package/dist/agents/credential-setup.d.ts.map +1 -1
- package/dist/agents/credential-setup.js +2 -23
- package/dist/agents/credential-setup.js.map +1 -1
- package/dist/agents/prompt.js +1 -1
- package/dist/agents/prompt.js.map +1 -1
- package/dist/agents/scheduler-tools.d.ts +40 -0
- package/dist/agents/scheduler-tools.d.ts.map +1 -0
- package/dist/agents/scheduler-tools.js +178 -0
- package/dist/agents/scheduler-tools.js.map +1 -0
- package/dist/agents/transport-runner.d.ts +95 -0
- package/dist/agents/transport-runner.d.ts.map +1 -0
- package/dist/agents/transport-runner.js +653 -0
- package/dist/agents/transport-runner.js.map +1 -0
- package/dist/build-info.json +1 -1
- package/dist/cli/commands/add.d.ts +1 -0
- package/dist/cli/commands/add.d.ts.map +1 -1
- package/dist/cli/commands/add.js +24 -9
- package/dist/cli/commands/add.js.map +1 -1
- package/dist/cli/commands/agent.d.ts +0 -3
- package/dist/cli/commands/agent.d.ts.map +1 -1
- package/dist/cli/commands/agent.js +3 -67
- package/dist/cli/commands/agent.js.map +1 -1
- package/dist/cli/commands/logs.d.ts.map +1 -1
- package/dist/cli/commands/logs.js +2 -3
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/main.js +1 -30
- package/dist/cli/main.js.map +1 -1
- package/dist/control/routes/dashboard-api.js +1 -1
- package/dist/control/routes/dashboard-api.js.map +1 -1
- package/dist/control/routes/log-helpers.d.ts +4 -4
- package/dist/control/routes/log-helpers.d.ts.map +1 -1
- package/dist/control/routes/log-helpers.js +12 -7
- package/dist/control/routes/log-helpers.js.map +1 -1
- package/dist/control/routes/log-summary.d.ts.map +1 -1
- package/dist/control/routes/log-summary.js +22 -9
- package/dist/control/routes/log-summary.js.map +1 -1
- package/dist/control/routes/logs.d.ts.map +1 -1
- package/dist/control/routes/logs.js +10 -10
- package/dist/control/routes/logs.js.map +1 -1
- package/dist/docker/providers/index.d.ts +0 -4
- package/dist/docker/providers/index.d.ts.map +1 -1
- package/dist/docker/providers/index.js +0 -38
- package/dist/docker/providers/index.js.map +1 -1
- package/dist/execution/execution.d.ts +0 -1
- package/dist/execution/execution.d.ts.map +1 -1
- package/dist/execution/execution.js +5 -9
- package/dist/execution/execution.js.map +1 -1
- package/dist/execution/index.d.ts +1 -11
- package/dist/execution/index.d.ts.map +1 -1
- package/dist/execution/index.js +1 -8
- package/dist/execution/index.js.map +1 -1
- package/dist/execution/runner-setup.d.ts +6 -11
- package/dist/execution/runner-setup.d.ts.map +1 -1
- package/dist/execution/runner-setup.js +18 -14
- package/dist/execution/runner-setup.js.map +1 -1
- package/dist/execution/runtime-factory.d.ts +1 -15
- package/dist/execution/runtime-factory.d.ts.map +1 -1
- package/dist/execution/runtime-factory.js +1 -18
- package/dist/execution/runtime-factory.js.map +1 -1
- package/dist/frontend/assets/{index-a78B5S5H.js → index-DnSu-8Kw.js} +1 -1
- package/dist/frontend/assets/index-DnSu-8Kw.js.map +1 -0
- package/dist/frontend/index.html +1 -1
- package/dist/gateway/index.d.ts +1 -1
- package/dist/gateway/index.d.ts.map +1 -1
- package/dist/gateway/index.js +6 -47
- package/dist/gateway/index.js.map +1 -1
- package/dist/gateway/routes/system.d.ts +1 -4
- package/dist/gateway/routes/system.d.ts.map +1 -1
- package/dist/gateway/routes/system.js +3 -8
- package/dist/gateway/routes/system.js.map +1 -1
- package/dist/gateway/stores.d.ts +0 -4
- package/dist/gateway/stores.d.ts.map +1 -1
- package/dist/gateway/stores.js +2 -10
- package/dist/gateway/stores.js.map +1 -1
- package/dist/gateway/types.d.ts +0 -13
- package/dist/gateway/types.d.ts.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +11 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/models/providers/custom.d.ts.map +1 -1
- package/dist/models/providers/custom.js +3 -2
- package/dist/models/providers/custom.js.map +1 -1
- package/dist/models/providers/openai.d.ts.map +1 -1
- package/dist/models/providers/openai.js +3 -2
- package/dist/models/providers/openai.js.map +1 -1
- package/dist/scheduler/gateway-setup.d.ts +0 -2
- package/dist/scheduler/gateway-setup.d.ts.map +1 -1
- package/dist/scheduler/gateway-setup.js +2 -11
- package/dist/scheduler/gateway-setup.js.map +1 -1
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +95 -55
- package/dist/scheduler/index.js.map +1 -1
- package/dist/scheduler/validation.js +1 -1
- package/dist/scheduler/validation.js.map +1 -1
- package/dist/scheduler/watcher.d.ts +2 -8
- package/dist/scheduler/watcher.d.ts.map +1 -1
- package/dist/scheduler/watcher.js +7 -104
- package/dist/scheduler/watcher.js.map +1 -1
- package/dist/shared/config/load-agent.js +2 -2
- package/dist/shared/config/load-agent.js.map +1 -1
- package/dist/shared/config/load-project.js +2 -2
- package/dist/shared/config/load-project.js.map +1 -1
- package/dist/shared/config/types.d.ts +10 -2
- package/dist/shared/config/types.d.ts.map +1 -1
- package/dist/shared/constants.d.ts +1 -1
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +2 -2
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/credential-refs.js +1 -1
- package/dist/shared/credential-refs.js.map +1 -1
- package/dist/shared/paths.d.ts.map +1 -1
- package/dist/shared/paths.js +2 -2
- package/dist/shared/paths.js.map +1 -1
- package/dist/shared/validation.js +1 -1
- package/dist/shared/validation.js.map +1 -1
- package/dist/transport/docker-exec.d.ts +41 -0
- package/dist/transport/docker-exec.d.ts.map +1 -0
- package/dist/transport/docker-exec.js +331 -0
- package/dist/transport/docker-exec.js.map +1 -0
- package/dist/transport/host-user.d.ts +37 -0
- package/dist/transport/host-user.d.ts.map +1 -0
- package/dist/transport/host-user.js +232 -0
- package/dist/transport/host-user.js.map +1 -0
- package/dist/transport/index.d.ts +8 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +7 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/memory.d.ts +35 -0
- package/dist/transport/memory.d.ts.map +1 -0
- package/dist/transport/memory.js +110 -0
- package/dist/transport/memory.js.map +1 -0
- package/dist/transport/operations.d.ts +68 -0
- package/dist/transport/operations.d.ts.map +1 -0
- package/dist/transport/operations.js +164 -0
- package/dist/transport/operations.js.map +1 -0
- package/dist/transport/ssh.d.ts +43 -0
- package/dist/transport/ssh.d.ts.map +1 -0
- package/dist/transport/ssh.js +225 -0
- package/dist/transport/ssh.js.map +1 -0
- package/dist/transport/transport.d.ts +59 -0
- package/dist/transport/transport.d.ts.map +1 -0
- package/dist/transport/transport.js +29 -0
- package/dist/transport/transport.js.map +1 -0
- package/package.json +1 -1
- package/dist/agents/container-entry.d.ts +0 -31
- package/dist/agents/container-entry.d.ts.map +0 -1
- package/dist/agents/container-entry.js +0 -302
- package/dist/agents/container-entry.js.map +0 -1
- package/dist/agents/container-runner.d.ts +0 -59
- package/dist/agents/container-runner.d.ts.map +0 -1
- package/dist/agents/container-runner.js +0 -472
- package/dist/agents/container-runner.js.map +0 -1
- package/dist/agents/harness/claude-cli-harness.d.ts +0 -15
- package/dist/agents/harness/claude-cli-harness.d.ts.map +0 -1
- package/dist/agents/harness/claude-cli-harness.js +0 -240
- package/dist/agents/harness/claude-cli-harness.js.map +0 -1
- package/dist/agents/harness/consumer.d.ts +0 -31
- package/dist/agents/harness/consumer.d.ts.map +0 -1
- package/dist/agents/harness/consumer.js +0 -161
- package/dist/agents/harness/consumer.js.map +0 -1
- package/dist/agents/harness/factory.d.ts +0 -9
- package/dist/agents/harness/factory.d.ts.map +0 -1
- package/dist/agents/harness/factory.js +0 -25
- package/dist/agents/harness/factory.js.map +0 -1
- package/dist/agents/harness/index.d.ts +0 -9
- package/dist/agents/harness/index.d.ts.map +0 -1
- package/dist/agents/harness/index.js +0 -5
- package/dist/agents/harness/index.js.map +0 -1
- package/dist/agents/harness/pi-harness.d.ts +0 -18
- package/dist/agents/harness/pi-harness.d.ts.map +0 -1
- package/dist/agents/harness/pi-harness.js +0 -259
- package/dist/agents/harness/pi-harness.js.map +0 -1
- package/dist/agents/harness/types.d.ts +0 -57
- package/dist/agents/harness/types.d.ts.map +0 -1
- package/dist/agents/harness/types.js +0 -2
- package/dist/agents/harness/types.js.map +0 -1
- package/dist/agents/session-loop.d.ts +0 -36
- package/dist/agents/session-loop.d.ts.map +0 -1
- package/dist/agents/session-loop.js +0 -216
- package/dist/agents/session-loop.js.map +0 -1
- package/dist/agents/signals.d.ts +0 -34
- package/dist/agents/signals.d.ts.map +0 -1
- package/dist/agents/signals.js +0 -122
- package/dist/agents/signals.js.map +0 -1
- package/dist/cli/commands/claude.d.ts +0 -4
- package/dist/cli/commands/claude.d.ts.map +0 -1
- package/dist/cli/commands/claude.js +0 -6
- package/dist/cli/commands/claude.js.map +0 -1
- package/dist/cli/commands/run-agent.d.ts +0 -14
- package/dist/cli/commands/run-agent.d.ts.map +0 -1
- package/dist/cli/commands/run-agent.js +0 -270
- package/dist/cli/commands/run-agent.js.map +0 -1
- package/dist/docker/cloud-run-runtime.d.ts +0 -48
- package/dist/docker/cloud-run-runtime.d.ts.map +0 -1
- package/dist/docker/cloud-run-runtime.js +0 -490
- package/dist/docker/cloud-run-runtime.js.map +0 -1
- package/dist/docker/image.d.ts +0 -19
- package/dist/docker/image.d.ts.map +0 -1
- package/dist/docker/image.js +0 -111
- package/dist/docker/image.js.map +0 -1
- package/dist/execution/call-dispatcher.d.ts +0 -11
- package/dist/execution/call-dispatcher.d.ts.map +0 -1
- package/dist/execution/call-dispatcher.js +0 -75
- package/dist/execution/call-dispatcher.js.map +0 -1
- package/dist/execution/container-registry.d.ts +0 -42
- package/dist/execution/container-registry.d.ts.map +0 -1
- package/dist/execution/container-registry.js +0 -76
- package/dist/execution/container-registry.js.map +0 -1
- package/dist/execution/image-builder.d.ts +0 -48
- package/dist/execution/image-builder.d.ts.map +0 -1
- package/dist/execution/image-builder.js +0 -155
- package/dist/execution/image-builder.js.map +0 -1
- package/dist/execution/routes/calls.d.ts +0 -18
- package/dist/execution/routes/calls.d.ts.map +0 -1
- package/dist/execution/routes/calls.js +0 -74
- package/dist/execution/routes/calls.js.map +0 -1
- package/dist/execution/routes/locks.d.ts +0 -10
- package/dist/execution/routes/locks.d.ts.map +0 -1
- package/dist/execution/routes/locks.js +0 -166
- package/dist/execution/routes/locks.js.map +0 -1
- package/dist/execution/routes/shutdown.d.ts +0 -5
- package/dist/execution/routes/shutdown.d.ts.map +0 -1
- package/dist/execution/routes/shutdown.js +0 -24
- package/dist/execution/routes/shutdown.js.map +0 -1
- package/dist/execution/routes/signals.d.ts +0 -12
- package/dist/execution/routes/signals.d.ts.map +0 -1
- package/dist/execution/routes/signals.js +0 -123
- package/dist/execution/routes/signals.js.map +0 -1
- package/dist/execution/types.d.ts +0 -23
- package/dist/execution/types.d.ts.map +0 -1
- package/dist/execution/types.js +0 -2
- package/dist/execution/types.js.map +0 -1
- package/dist/frontend/assets/index-a78B5S5H.js.map +0 -1
- package/dist/gateway/routes/execution.d.ts +0 -24
- package/dist/gateway/routes/execution.d.ts.map +0 -1
- package/dist/gateway/routes/execution.js +0 -13
- package/dist/gateway/routes/execution.js.map +0 -1
- package/dist/scheduler/orphan-recovery.d.ts +0 -25
- package/dist/scheduler/orphan-recovery.d.ts.map +0 -1
- package/dist/scheduler/orphan-recovery.js +0 -144
- package/dist/scheduler/orphan-recovery.js.map +0 -1
|
@@ -1,302 +0,0 @@
|
|
|
1
|
-
import { readFileSync, existsSync, rmSync } from "fs";
|
|
2
|
-
import { spawnSync } from "child_process";
|
|
3
|
-
import { setMaxListeners } from "node:events";
|
|
4
|
-
import { DefaultResourceLoader, SettingsManager, } from "@mariozechner/pi-coding-agent";
|
|
5
|
-
import { ExitCode, getExitCodeMessage } from "../shared/exit-codes.js";
|
|
6
|
-
import { ensureSignalDir, readSignals } from "./signals.js";
|
|
7
|
-
import { runHooks } from "../hooks/runner.js";
|
|
8
|
-
import { processContextInjection } from "./context-injection.js";
|
|
9
|
-
import { parseFrontmatter } from "../shared/frontmatter.js";
|
|
10
|
-
import { initTelemetry } from "../telemetry/index.js";
|
|
11
|
-
import { loadContainerCredentials, resolveHarnessEnv } from "./credential-setup.js";
|
|
12
|
-
import { consumeHarness, createHarness } from "./harness/index.js";
|
|
13
|
-
// The pi library creates AbortSignals shared across parallel tool/API calls,
|
|
14
|
-
// which accumulate >10 abort listeners and trigger a benign Node.js warning.
|
|
15
|
-
// Patch AbortController to raise the limit on every new signal.
|
|
16
|
-
const _OrigAC = globalThis.AbortController;
|
|
17
|
-
globalThis.AbortController = class extends _OrigAC {
|
|
18
|
-
constructor() { super(); setMaxListeners(20, this.signal); }
|
|
19
|
-
};
|
|
20
|
-
// Structured log line — written to stdout, parsed by ContainerAgentRunner on the host
|
|
21
|
-
function emitLog(level, msg, data) {
|
|
22
|
-
console.log(JSON.stringify({ _log: true, level, msg, ...data, ts: Date.now() }));
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* One-time initialization — called once during Lambda init (cold start) or
|
|
26
|
-
* at the start of a direct container run. Sets up PATH, signal dir, loads
|
|
27
|
-
* static config, creates reusable model/resourceLoader/settingsManager.
|
|
28
|
-
*/
|
|
29
|
-
export async function initAgent() {
|
|
30
|
-
// Point HOME to /tmp so that tools writing to $HOME (e.g. git config --global)
|
|
31
|
-
// work on read-only filesystems like Lambda where /home/node is not writable.
|
|
32
|
-
process.env.HOME = "/tmp";
|
|
33
|
-
// Switch CWD to /tmp so child processes (git, bash, etc.) default to it.
|
|
34
|
-
// /tmp is the only writable directory across all platforms (local Docker,
|
|
35
|
-
// ECS Fargate, Cloud Run). Node starts in /app (WORKDIR at build time).
|
|
36
|
-
process.chdir("/tmp");
|
|
37
|
-
// Set PATH to include baked scripts at /app/bin.
|
|
38
|
-
// Scripts are baked into the image by the Dockerfile — no need to write them.
|
|
39
|
-
process.env.PATH = `/app/bin:${process.env.PATH || ""}`;
|
|
40
|
-
// Create the per-run signal directory (scripts reference $AL_SIGNAL_DIR)
|
|
41
|
-
const signalDir = "/tmp/signals";
|
|
42
|
-
ensureSignalDir(signalDir);
|
|
43
|
-
process.env.AL_SIGNAL_DIR = signalDir;
|
|
44
|
-
// Initialize telemetry if trace context is available
|
|
45
|
-
if (process.env.OTEL_TRACE_PARENT || process.env.OTEL_EXPORTER_OTLP_ENDPOINT) {
|
|
46
|
-
try {
|
|
47
|
-
const telemetryConfig = {
|
|
48
|
-
enabled: true,
|
|
49
|
-
provider: "otel",
|
|
50
|
-
serviceName: "action-llama-agent",
|
|
51
|
-
endpoint: process.env.OTEL_EXPORTER_OTLP_ENDPOINT,
|
|
52
|
-
samplingRate: 1.0,
|
|
53
|
-
};
|
|
54
|
-
const telemetry = initTelemetry(telemetryConfig);
|
|
55
|
-
await telemetry.init();
|
|
56
|
-
// Set trace context if passed from parent
|
|
57
|
-
if (process.env.OTEL_TRACE_PARENT) {
|
|
58
|
-
telemetry.setTraceContext(process.env.OTEL_TRACE_PARENT);
|
|
59
|
-
}
|
|
60
|
-
emitLog("info", "telemetry initialized in container");
|
|
61
|
-
}
|
|
62
|
-
catch (error) {
|
|
63
|
-
emitLog("warn", "failed to initialize container telemetry", { error: error.message });
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
// Load agent config and SKILL.md from baked-in files or env vars.
|
|
67
|
-
// Images built with extraFiles have static content at /app/static/.
|
|
68
|
-
const STATIC_DIR = "/app/static";
|
|
69
|
-
const hasBakedFiles = existsSync(`${STATIC_DIR}/agent-config.json`);
|
|
70
|
-
let agentConfig;
|
|
71
|
-
let skillBody;
|
|
72
|
-
let timeoutSeconds;
|
|
73
|
-
if (hasBakedFiles) {
|
|
74
|
-
agentConfig = JSON.parse(readFileSync(`${STATIC_DIR}/agent-config.json`, "utf-8"));
|
|
75
|
-
// Read SKILL.md and extract the body (frontmatter was already parsed at build time)
|
|
76
|
-
const skillPath = `${STATIC_DIR}/SKILL.md`;
|
|
77
|
-
if (existsSync(skillPath)) {
|
|
78
|
-
const { body } = parseFrontmatter(readFileSync(skillPath, "utf-8"));
|
|
79
|
-
skillBody = body;
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
skillBody = "";
|
|
83
|
-
}
|
|
84
|
-
timeoutSeconds = parseInt(readFileSync(`${STATIC_DIR}/timeout`, "utf-8").trim(), 10) || 3600;
|
|
85
|
-
emitLog("info", "loaded static files from image");
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
// Legacy env var path (for images built without extraFiles)
|
|
89
|
-
const agentConfigStr = process.env.AGENT_CONFIG;
|
|
90
|
-
if (!agentConfigStr) {
|
|
91
|
-
throw new Error("missing AGENT_CONFIG env var and no baked-in files at /app/static/");
|
|
92
|
-
}
|
|
93
|
-
const parsed = JSON.parse(agentConfigStr);
|
|
94
|
-
skillBody = parsed._skillBody || "";
|
|
95
|
-
delete parsed._skillBody;
|
|
96
|
-
agentConfig = parsed;
|
|
97
|
-
timeoutSeconds = parseInt(process.env.TIMEOUT_SECONDS || "3600", 10);
|
|
98
|
-
}
|
|
99
|
-
const agentsContent = skillBody || `# ${agentConfig.name} Agent\n\nCustom agent.\n`;
|
|
100
|
-
const agentsFile = "/tmp/SKILL.md";
|
|
101
|
-
const resourceLoader = new DefaultResourceLoader({
|
|
102
|
-
noExtensions: true,
|
|
103
|
-
agentsFilesOverride: () => ({
|
|
104
|
-
agentsFiles: [
|
|
105
|
-
{ path: agentsFile, content: agentsContent },
|
|
106
|
-
],
|
|
107
|
-
}),
|
|
108
|
-
});
|
|
109
|
-
await resourceLoader.reload();
|
|
110
|
-
const settingsManager = SettingsManager.inMemory({
|
|
111
|
-
compaction: { enabled: true },
|
|
112
|
-
retry: { enabled: true, maxRetries: 2 },
|
|
113
|
-
});
|
|
114
|
-
return { agentConfig, skillBody: agentsContent, timeoutSeconds, resourceLoader, settingsManager, signalDir };
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Per-invocation handler. Loads credentials, creates a session, runs the
|
|
118
|
-
* prompt, reads signals, and returns an exit code.
|
|
119
|
-
*/
|
|
120
|
-
export async function handleInvocation(init) {
|
|
121
|
-
const { agentConfig, timeoutSeconds, resourceLoader, settingsManager, signalDir } = init;
|
|
122
|
-
const gatewayUrl = process.env.GATEWAY_URL;
|
|
123
|
-
const primaryModel = agentConfig.models[0];
|
|
124
|
-
const modelId = primaryModel.model;
|
|
125
|
-
emitLog("info", "container starting", { agentName: agentConfig.name, modelId, gatewayUrl });
|
|
126
|
-
// Container-level timeout — self-terminates even if scheduler dies
|
|
127
|
-
const timer = setTimeout(() => {
|
|
128
|
-
emitLog("error", "container timeout reached, self-terminating", { timeoutSeconds });
|
|
129
|
-
process.exit(124);
|
|
130
|
-
}, timeoutSeconds * 1000);
|
|
131
|
-
timer.unref();
|
|
132
|
-
// Wait for the gateway proxy to become reachable before proceeding.
|
|
133
|
-
// On Docker Desktop the proxy container may need a moment to establish
|
|
134
|
-
// connectivity back to the host gateway (502 Bad Gateway until ready).
|
|
135
|
-
if (gatewayUrl) {
|
|
136
|
-
const maxAttempts = 30;
|
|
137
|
-
for (let i = 0; i < maxAttempts; i++) {
|
|
138
|
-
try {
|
|
139
|
-
const res = await fetch(`${gatewayUrl}/health`, { signal: AbortSignal.timeout(2000) });
|
|
140
|
-
if (res.ok)
|
|
141
|
-
break;
|
|
142
|
-
}
|
|
143
|
-
catch { /* connection refused or timeout — retry */ }
|
|
144
|
-
await new Promise((r) => setTimeout(r, 500));
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
// Load credentials from mounted volume or env vars (ECS/Lambda/Cloud Run).
|
|
148
|
-
// Extracted to credential-setup.ts for reuse in chat mode.
|
|
149
|
-
const { providerKeys } = loadContainerCredentials(agentConfig);
|
|
150
|
-
// Run pre hooks (data staging before LLM session)
|
|
151
|
-
if (agentConfig.hooks?.pre && agentConfig.hooks.pre.length > 0) {
|
|
152
|
-
await runHooks(agentConfig.hooks.pre, "pre", {
|
|
153
|
-
env: { ...process.env },
|
|
154
|
-
logger: emitLog,
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
// Process !`command` context injection in the SKILL.md body.
|
|
158
|
-
// Runs after hooks.pre (so cloned repos are available) and before the LLM session.
|
|
159
|
-
const processedBody = processContextInjection(init.skillBody, { ...process.env });
|
|
160
|
-
if (processedBody !== init.skillBody) {
|
|
161
|
-
const updatedLoader = new DefaultResourceLoader({
|
|
162
|
-
noExtensions: true,
|
|
163
|
-
agentsFilesOverride: () => ({
|
|
164
|
-
agentsFiles: [{ path: "/tmp/SKILL.md", content: processedBody }],
|
|
165
|
-
}),
|
|
166
|
-
});
|
|
167
|
-
await updatedLoader.reload();
|
|
168
|
-
init.resourceLoader = updatedLoader;
|
|
169
|
-
}
|
|
170
|
-
// Script mode: if a test script is baked in, run it instead of the LLM.
|
|
171
|
-
// All env setup (PATH, credentials, signal dir, git config) is already done.
|
|
172
|
-
const testScriptPath = "/app/static/test-script.sh";
|
|
173
|
-
if (existsSync(testScriptPath)) {
|
|
174
|
-
emitLog("info", "script mode: running test-script.sh instead of LLM");
|
|
175
|
-
const result = spawnSync("sh", [testScriptPath], {
|
|
176
|
-
stdio: "inherit",
|
|
177
|
-
env: process.env,
|
|
178
|
-
cwd: "/tmp",
|
|
179
|
-
});
|
|
180
|
-
clearTimeout(timer);
|
|
181
|
-
return result.status ?? 1;
|
|
182
|
-
}
|
|
183
|
-
const cwd = "/app/static";
|
|
184
|
-
// Build full prompt: static skeleton (from image) + dynamic suffix (from env var)
|
|
185
|
-
const STATIC_DIR2 = "/app/static";
|
|
186
|
-
const hasBakedFiles2 = existsSync(`${STATIC_DIR2}/agent-config.json`);
|
|
187
|
-
let fullPrompt;
|
|
188
|
-
const promptStaticPath = `${STATIC_DIR2}/prompt-static.txt`;
|
|
189
|
-
if (hasBakedFiles2 && existsSync(promptStaticPath)) {
|
|
190
|
-
const skeleton = readFileSync(promptStaticPath, "utf-8");
|
|
191
|
-
const dynamicSuffix = process.env.PROMPT || "";
|
|
192
|
-
fullPrompt = dynamicSuffix ? `${skeleton}\n\n${dynamicSuffix}` : skeleton;
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
const envPrompt = process.env.PROMPT;
|
|
196
|
-
if (!envPrompt) {
|
|
197
|
-
throw new Error("missing PROMPT env var and no baked-in prompt skeleton");
|
|
198
|
-
}
|
|
199
|
-
fullPrompt = envPrompt;
|
|
200
|
-
}
|
|
201
|
-
const harness = createHarness(agentConfig, {
|
|
202
|
-
resourceLoader,
|
|
203
|
-
settingsManager,
|
|
204
|
-
providerKeys,
|
|
205
|
-
});
|
|
206
|
-
let abortedDueToErrors = false;
|
|
207
|
-
const loopResult = await consumeHarness(harness, harness.run(fullPrompt, {
|
|
208
|
-
cwd,
|
|
209
|
-
env: {
|
|
210
|
-
...resolveHarnessEnv(agentConfig, providerKeys),
|
|
211
|
-
},
|
|
212
|
-
}), {
|
|
213
|
-
log: emitLog,
|
|
214
|
-
onUnrecoverableAbort: () => { abortedDueToErrors = true; },
|
|
215
|
-
});
|
|
216
|
-
const { outputText } = loopResult;
|
|
217
|
-
// Emit a structured session summary so the host can see why the model stopped.
|
|
218
|
-
// This is the key diagnostic log — it surfaces the stop reason, last tool states,
|
|
219
|
-
// and whether the session was productive, all at info level.
|
|
220
|
-
emitLog("info", "session ended", {
|
|
221
|
-
stopReason: loopResult.lastStopReason,
|
|
222
|
-
turnCount: loopResult.usage?.turnCount,
|
|
223
|
-
outputLength: outputText.length,
|
|
224
|
-
contextPercent: loopResult.contextPercent,
|
|
225
|
-
aborted: loopResult.aborted,
|
|
226
|
-
allModelsExhausted: loopResult.allModelsExhausted,
|
|
227
|
-
hasError: !!loopResult.errorMessage,
|
|
228
|
-
errorMessage: loopResult.errorMessage,
|
|
229
|
-
lastTools: loopResult.lastToolResults,
|
|
230
|
-
orphanedTools: loopResult.orphanedToolCalls?.length > 0 ? loopResult.orphanedToolCalls : undefined,
|
|
231
|
-
});
|
|
232
|
-
clearTimeout(timer);
|
|
233
|
-
// Run post hooks after LLM session, before container exits
|
|
234
|
-
if (agentConfig.hooks?.post && agentConfig.hooks.post.length > 0) {
|
|
235
|
-
try {
|
|
236
|
-
await runHooks(agentConfig.hooks.post, "post", {
|
|
237
|
-
env: { ...process.env },
|
|
238
|
-
logger: emitLog,
|
|
239
|
-
});
|
|
240
|
-
}
|
|
241
|
-
catch (err) {
|
|
242
|
-
emitLog("error", "post hook failed", { error: err?.message });
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
if (abortedDueToErrors) {
|
|
246
|
-
return 1;
|
|
247
|
-
}
|
|
248
|
-
if (loopResult.allModelsExhausted) {
|
|
249
|
-
emitLog("error", "all models exhausted — rate limited across all retries");
|
|
250
|
-
return ExitCode.RATE_LIMITED;
|
|
251
|
-
}
|
|
252
|
-
if (loopResult.aborted) {
|
|
253
|
-
emitLog("error", "agent session aborted");
|
|
254
|
-
return 1;
|
|
255
|
-
}
|
|
256
|
-
if (loopResult.errorMessage) {
|
|
257
|
-
emitLog("error", "run failed", { error: loopResult.errorMessage });
|
|
258
|
-
return 1;
|
|
259
|
-
}
|
|
260
|
-
// Read signal files written by al-rerun, al-status, al-return, al-exit
|
|
261
|
-
const signals = readSignals(signalDir);
|
|
262
|
-
if (signals.exitCode !== undefined) {
|
|
263
|
-
const reason = getExitCodeMessage(signals.exitCode);
|
|
264
|
-
emitLog("error", "agent terminated with exit signal", { exitCode: signals.exitCode, reason });
|
|
265
|
-
emitLog("info", "signal-result", { type: "exit", exitCode: signals.exitCode, reason });
|
|
266
|
-
return signals.exitCode;
|
|
267
|
-
}
|
|
268
|
-
if (signals.rerun) {
|
|
269
|
-
emitLog("info", "run completed, rerun requested", { outputLength: outputText.length });
|
|
270
|
-
emitLog("info", "signal-result", { type: "rerun" });
|
|
271
|
-
return 42;
|
|
272
|
-
}
|
|
273
|
-
if (signals.returnValue !== undefined) {
|
|
274
|
-
emitLog("info", "signal-result", { type: "return", value: signals.returnValue.slice(0, 1000) });
|
|
275
|
-
}
|
|
276
|
-
emitLog("info", "run completed", { outputLength: outputText.length });
|
|
277
|
-
// Clean up signal files between invocations (Lambda reuses /tmp)
|
|
278
|
-
try {
|
|
279
|
-
const signalFiles = ["rerun", "status", "return", "exit"];
|
|
280
|
-
for (const f of signalFiles) {
|
|
281
|
-
try {
|
|
282
|
-
rmSync(`${signalDir}/${f}`);
|
|
283
|
-
}
|
|
284
|
-
catch { /* may not exist */ }
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
catch { /* best-effort cleanup */ }
|
|
288
|
-
return 0;
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* Legacy single-function entrypoint. Calls initAgent() then handleInvocation().
|
|
292
|
-
* Kept for backward compatibility with non-Lambda container runs.
|
|
293
|
-
*/
|
|
294
|
-
export async function runAgent() {
|
|
295
|
-
const init = await initAgent();
|
|
296
|
-
return handleInvocation(init);
|
|
297
|
-
}
|
|
298
|
-
runAgent().then((code) => process.exit(code), (err) => {
|
|
299
|
-
emitLog("error", "container entry error", { error: err.message, stack: err.stack?.split("\n").slice(0, 5).join("\n") });
|
|
300
|
-
process.exit(1);
|
|
301
|
-
});
|
|
302
|
-
//# sourceMappingURL=container-entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"container-entry.js","sourceRoot":"","sources":["../../src/agents/container-entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import type { GlobalConfig, AgentConfig } from "../shared/config.js";
|
|
2
|
-
import type { Logger } from "../shared/logger.js";
|
|
3
|
-
import type { Runtime } from "../docker/runtime.js";
|
|
4
|
-
import type { ContainerRegistration } from "../execution/types.js";
|
|
5
|
-
import type { StatusTracker } from "../tui/status-tracker.js";
|
|
6
|
-
import type { RunOutcome } from "./types.js";
|
|
7
|
-
export declare class ContainerAgentRunner {
|
|
8
|
-
private _running;
|
|
9
|
-
private _aborting;
|
|
10
|
-
private _returnValue;
|
|
11
|
-
private _tokenUsage;
|
|
12
|
-
private _containerName;
|
|
13
|
-
private _runError;
|
|
14
|
-
private runtime;
|
|
15
|
-
private globalConfig;
|
|
16
|
-
private agentConfig;
|
|
17
|
-
private baseLogger;
|
|
18
|
-
private logger;
|
|
19
|
-
private registerContainer;
|
|
20
|
-
private unregisterContainer;
|
|
21
|
-
private gatewayUrl;
|
|
22
|
-
instanceId: string;
|
|
23
|
-
private projectPath;
|
|
24
|
-
private image;
|
|
25
|
-
private statusTracker?;
|
|
26
|
-
constructor(runtime: Runtime, globalConfig: GlobalConfig, agentConfig: AgentConfig, logger: Logger, registerContainer: (secret: string, reg: ContainerRegistration) => Promise<void>, unregisterContainer: (secret: string) => Promise<void>, gatewayUrl: string, projectPath: string, image: string, statusTracker?: StatusTracker);
|
|
27
|
-
get isRunning(): boolean;
|
|
28
|
-
setImage(image: string): void;
|
|
29
|
-
setAgentConfig(config: AgentConfig): void;
|
|
30
|
-
setRuntime(runtime: Runtime): void;
|
|
31
|
-
get containerName(): string | undefined;
|
|
32
|
-
abort(): void;
|
|
33
|
-
private surfaceStderr;
|
|
34
|
-
private forwardLogLine;
|
|
35
|
-
/**
|
|
36
|
-
* Monitor a running container: stream logs, wait for exit, interpret the
|
|
37
|
-
* exit code, and clean up. Called by both _runInternalContainer (after
|
|
38
|
-
* launch) and adoptContainer (skipping launch).
|
|
39
|
-
*
|
|
40
|
-
* Returns { runResult, runError } and handles all gateway/credential/
|
|
41
|
-
* container cleanup in its finally block.
|
|
42
|
-
*/
|
|
43
|
-
private monitorContainer;
|
|
44
|
-
/**
|
|
45
|
-
* Adopt an already-running container from a previous scheduler session.
|
|
46
|
-
* Re-attaches log streaming, monitors exit, and records the result.
|
|
47
|
-
* Skips image launch, credential preparation, and env setup.
|
|
48
|
-
*/
|
|
49
|
-
adoptContainer(containerName: string, shutdownSecret: string, instanceId: string, triggerInfo?: {
|
|
50
|
-
type: 'schedule' | 'manual' | 'webhook' | 'agent';
|
|
51
|
-
source?: string;
|
|
52
|
-
}): Promise<RunOutcome>;
|
|
53
|
-
run(prompt: string, triggerInfo?: {
|
|
54
|
-
type: 'schedule' | 'manual' | 'webhook' | 'agent';
|
|
55
|
-
source?: string;
|
|
56
|
-
}, instanceId?: string): Promise<RunOutcome>;
|
|
57
|
-
private _runInternalContainer;
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=container-runner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"container-runner.d.ts","sourceRoot":"","sources":["../../src/agents/container-runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAsB,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,YAAY,CAAC;AAMxD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,iBAAiB,CAAgE;IACzF,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,UAAU,CAAS;IACpB,UAAU,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,aAAa,CAAC,CAAgB;gBAGpC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,EAChF,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EACtD,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,aAAa;IAgB/B,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAIzC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,KAAK,IAAI,IAAI;IAUb,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;IAgFtB;;;;;;;OAOG;YACW,gBAAgB;IAyH9B;;;;OAIG;IACG,cAAc,CAClB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GACnF,OAAO,CAAC,UAAU,CAAC;IAqDhB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;YA2C3I,qBAAqB;CAqIpC"}
|