@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,24 +0,0 @@
|
|
|
1
|
-
import type { Hono } from "hono";
|
|
2
|
-
import { type CallDispatcher } from "../../execution/routes/calls.js";
|
|
3
|
-
import { type SignalContext } from "../../execution/routes/signals.js";
|
|
4
|
-
import type { ContainerRegistry } from "../../execution/container-registry.js";
|
|
5
|
-
import type { LockStore } from "../../execution/lock-store.js";
|
|
6
|
-
import type { CallStore } from "../../execution/call-store.js";
|
|
7
|
-
import type { Logger } from "../../shared/logger.js";
|
|
8
|
-
import type { StatusTracker } from "../../tui/status-tracker.js";
|
|
9
|
-
import type { SchedulerEventBus } from "../../scheduler/events.js";
|
|
10
|
-
/**
|
|
11
|
-
* Register execution-plane routes: locks, calls, and signals.
|
|
12
|
-
*/
|
|
13
|
-
export declare function registerExecutionRoutes(app: Hono, opts: {
|
|
14
|
-
containerRegistry: ContainerRegistry;
|
|
15
|
-
lockStore: LockStore;
|
|
16
|
-
callStore: CallStore;
|
|
17
|
-
callDispatcherProvider: () => CallDispatcher | undefined;
|
|
18
|
-
logger: Logger;
|
|
19
|
-
statusTracker?: StatusTracker;
|
|
20
|
-
signalContext?: SignalContext;
|
|
21
|
-
skipStatusEndpoint?: boolean;
|
|
22
|
-
events?: SchedulerEventBus;
|
|
23
|
-
}): void;
|
|
24
|
-
//# sourceMappingURL=execution.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../src/gateway/routes/execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC7F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,IAAI,EACT,IAAI,EAAE;IACJ,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,sBAAsB,EAAE,MAAM,cAAc,GAAG,SAAS,CAAC;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B,GACA,IAAI,CAgBN"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { registerLockRoutes } from "../../execution/routes/locks.js";
|
|
2
|
-
import { registerCallRoutes } from "../../execution/routes/calls.js";
|
|
3
|
-
import { registerSignalRoutes } from "../../execution/routes/signals.js";
|
|
4
|
-
/**
|
|
5
|
-
* Register execution-plane routes: locks, calls, and signals.
|
|
6
|
-
*/
|
|
7
|
-
export function registerExecutionRoutes(app, opts) {
|
|
8
|
-
const { containerRegistry, lockStore, callStore, callDispatcherProvider, logger, statusTracker, signalContext, skipStatusEndpoint, events, } = opts;
|
|
9
|
-
registerLockRoutes(app, containerRegistry, lockStore, logger, { skipStatusEndpoint, events });
|
|
10
|
-
registerCallRoutes(app, containerRegistry, callStore, callDispatcherProvider, logger, events);
|
|
11
|
-
registerSignalRoutes(app, containerRegistry, logger, statusTracker, signalContext, events);
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=execution.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../src/gateway/routes/execution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAuB,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAsB,MAAM,mCAAmC,CAAC;AAQ7F;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAAS,EACT,IAUC;IAED,MAAM,EACJ,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,sBAAsB,EACtB,MAAM,EACN,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,MAAM,GACP,GAAG,IAAI,CAAC;IAET,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9F,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9F,oBAAoB,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AAC7F,CAAC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { AgentConfig } from "../shared/config.js";
|
|
2
|
-
import type { Logger } from "../shared/logger.js";
|
|
3
|
-
import type { Runtime } from "../docker/runtime.js";
|
|
4
|
-
import type { RunnerPool } from "../execution/runner-pool.js";
|
|
5
|
-
import type { GatewayServer } from "../gateway/index.js";
|
|
6
|
-
import type { SchedulerContext } from "../execution/execution.js";
|
|
7
|
-
export interface OrphanRecoveryOpts {
|
|
8
|
-
runtime: Runtime;
|
|
9
|
-
gateway: GatewayServer;
|
|
10
|
-
runnerPools: Record<string, RunnerPool>;
|
|
11
|
-
activeAgentConfigs: AgentConfig[];
|
|
12
|
-
schedulerState: {
|
|
13
|
-
schedulerCtx: SchedulerContext | null;
|
|
14
|
-
};
|
|
15
|
-
logger: Logger;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Re-adopt orphan containers from a previous scheduler run, or clean up
|
|
19
|
-
* stale container registry entries.
|
|
20
|
-
*
|
|
21
|
-
* This is a scheduler-startup concern that orchestrates across the execution
|
|
22
|
-
* plane (runtime, runner pools) and the gateway (container registry, lock store).
|
|
23
|
-
*/
|
|
24
|
-
export declare function recoverOrphanContainers(opts: OrphanRecoveryOpts): Promise<void>;
|
|
25
|
-
//# sourceMappingURL=orphan-recovery.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"orphan-recovery.d.ts","sourceRoot":"","sources":["../../src/scheduler/orphan-recovery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,kBAAkB,EAAE,WAAW,EAAE,CAAC;IAClC,cAAc,EAAE;QAAE,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAA;KAAE,CAAC;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0HrF"}
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
// packages/action-llama/src/scheduler/orphan-recovery.ts
|
|
2
|
-
import { drainQueues } from "../execution/execution.js";
|
|
3
|
-
/**
|
|
4
|
-
* Re-adopt orphan containers from a previous scheduler run, or clean up
|
|
5
|
-
* stale container registry entries.
|
|
6
|
-
*
|
|
7
|
-
* This is a scheduler-startup concern that orchestrates across the execution
|
|
8
|
-
* plane (runtime, runner pools) and the gateway (container registry, lock store).
|
|
9
|
-
*/
|
|
10
|
-
export async function recoverOrphanContainers(opts) {
|
|
11
|
-
const { runtime, gateway, runnerPools, activeAgentConfigs, schedulerState, logger } = opts;
|
|
12
|
-
try {
|
|
13
|
-
const ownAgentNames = new Set(activeAgentConfigs.map((a) => a.name));
|
|
14
|
-
const orphans = (await runtime.listRunningAgents()).filter((o) => ownAgentNames.has(o.agentName));
|
|
15
|
-
if (orphans.length > 0) {
|
|
16
|
-
const registeredContainers = gateway.containerRegistry.listAll();
|
|
17
|
-
const runningNames = new Set(orphans.map((o) => o.taskId));
|
|
18
|
-
let adopted = 0;
|
|
19
|
-
let killed = 0;
|
|
20
|
-
for (const orphan of orphans) {
|
|
21
|
-
const found = gateway.containerRegistry.findByContainerName(orphan.taskId);
|
|
22
|
-
if (!found) {
|
|
23
|
-
// Container exists but has no registry entry — unknown, kill it
|
|
24
|
-
logger.warn({ agent: orphan.agentName, task: orphan.taskId }, "killing unregistered orphan container");
|
|
25
|
-
try {
|
|
26
|
-
await runtime.kill(orphan.taskId);
|
|
27
|
-
await runtime.remove(orphan.taskId);
|
|
28
|
-
}
|
|
29
|
-
catch { }
|
|
30
|
-
killed++;
|
|
31
|
-
continue;
|
|
32
|
-
}
|
|
33
|
-
const { secret: oldSecret, reg } = found;
|
|
34
|
-
const pool = runnerPools[orphan.agentName];
|
|
35
|
-
if (!pool) {
|
|
36
|
-
logger.warn({ agent: orphan.agentName, task: orphan.taskId }, "no runner pool for orphan, killing");
|
|
37
|
-
try {
|
|
38
|
-
await runtime.kill(orphan.taskId);
|
|
39
|
-
await runtime.remove(orphan.taskId);
|
|
40
|
-
}
|
|
41
|
-
catch { }
|
|
42
|
-
gateway.lockStore.releaseAll(reg.instanceId);
|
|
43
|
-
await gateway.containerRegistry.unregister(oldSecret);
|
|
44
|
-
killed++;
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
// Get shutdown secret from container env vars
|
|
48
|
-
let shutdownSecret;
|
|
49
|
-
if (runtime.inspectContainer) {
|
|
50
|
-
const info = await runtime.inspectContainer(orphan.taskId);
|
|
51
|
-
shutdownSecret = info?.env?.SHUTDOWN_SECRET;
|
|
52
|
-
}
|
|
53
|
-
if (!shutdownSecret) {
|
|
54
|
-
logger.warn({ agent: orphan.agentName, task: orphan.taskId }, "cannot read SHUTDOWN_SECRET from orphan, killing");
|
|
55
|
-
try {
|
|
56
|
-
await runtime.kill(orphan.taskId);
|
|
57
|
-
await runtime.remove(orphan.taskId);
|
|
58
|
-
}
|
|
59
|
-
catch { }
|
|
60
|
-
gateway.lockStore.releaseAll(reg.instanceId);
|
|
61
|
-
await gateway.containerRegistry.unregister(oldSecret);
|
|
62
|
-
killed++;
|
|
63
|
-
continue;
|
|
64
|
-
}
|
|
65
|
-
const runner = pool.getAvailableRunner();
|
|
66
|
-
if (!runner) {
|
|
67
|
-
logger.warn({ agent: orphan.agentName, task: orphan.taskId }, "no available runner for orphan, killing");
|
|
68
|
-
try {
|
|
69
|
-
await runtime.kill(orphan.taskId);
|
|
70
|
-
await runtime.remove(orphan.taskId);
|
|
71
|
-
}
|
|
72
|
-
catch { }
|
|
73
|
-
gateway.lockStore.releaseAll(reg.instanceId);
|
|
74
|
-
await gateway.containerRegistry.unregister(oldSecret);
|
|
75
|
-
killed++;
|
|
76
|
-
continue;
|
|
77
|
-
}
|
|
78
|
-
// Re-attach to the orphaned process so streamLogs/waitForExit work normally
|
|
79
|
-
const reattach = runtime.reattach;
|
|
80
|
-
if (typeof reattach === "function" && !reattach.call(runtime, orphan.taskId)) {
|
|
81
|
-
logger.warn({ agent: orphan.agentName, task: orphan.taskId }, "failed to reattach orphan, killing");
|
|
82
|
-
try {
|
|
83
|
-
await runtime.kill(orphan.taskId);
|
|
84
|
-
await runtime.remove(orphan.taskId);
|
|
85
|
-
}
|
|
86
|
-
catch { }
|
|
87
|
-
gateway.lockStore.releaseAll(reg.instanceId);
|
|
88
|
-
await gateway.containerRegistry.unregister(oldSecret);
|
|
89
|
-
killed++;
|
|
90
|
-
continue;
|
|
91
|
-
}
|
|
92
|
-
// Unregister old secret mapping — will be re-registered inside adoptContainer
|
|
93
|
-
await gateway.containerRegistry.unregister(oldSecret);
|
|
94
|
-
logger.info({ agent: orphan.agentName, task: orphan.taskId, instance: reg.instanceId }, "re-adopting orphan container");
|
|
95
|
-
const containerRunner = runner;
|
|
96
|
-
if (typeof containerRunner.adoptContainer === "function") {
|
|
97
|
-
containerRunner
|
|
98
|
-
.adoptContainer(orphan.taskId, shutdownSecret, reg.instanceId, { type: "schedule", source: "re-adopted" })
|
|
99
|
-
.then(() => { if (schedulerState.schedulerCtx)
|
|
100
|
-
drainQueues(schedulerState.schedulerCtx); })
|
|
101
|
-
.catch((err) => logger.error({ err, agent: orphan.agentName }, "orphan re-adoption failed"));
|
|
102
|
-
adopted++;
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
logger.warn({ agent: orphan.agentName }, "runner does not support adoption, killing orphan");
|
|
106
|
-
try {
|
|
107
|
-
await runtime.kill(orphan.taskId);
|
|
108
|
-
await runtime.remove(orphan.taskId);
|
|
109
|
-
}
|
|
110
|
-
catch { }
|
|
111
|
-
killed++;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
// Clean up registry entries for containers that exited while scheduler was down
|
|
115
|
-
for (const reg of registeredContainers) {
|
|
116
|
-
if (!runningNames.has(reg.containerName)) {
|
|
117
|
-
const found = gateway.containerRegistry.findByContainerName(reg.containerName);
|
|
118
|
-
if (found) {
|
|
119
|
-
gateway.lockStore.releaseAll(reg.instanceId);
|
|
120
|
-
await gateway.containerRegistry.unregister(found.secret);
|
|
121
|
-
logger.info({ agent: reg.agentName, instance: reg.instanceId }, "cleaned up stale registration (container exited while scheduler was down)");
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
logger.info({ adopted, killed, total: orphans.length }, "orphan container handling complete");
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
// No running containers — clean up all stale registry entries
|
|
129
|
-
const staleEntries = gateway.containerRegistry.listAll();
|
|
130
|
-
if (staleEntries.length > 0) {
|
|
131
|
-
let releasedLocks = 0;
|
|
132
|
-
for (const entry of staleEntries) {
|
|
133
|
-
releasedLocks += gateway.lockStore.releaseAll(entry.instanceId);
|
|
134
|
-
}
|
|
135
|
-
await gateway.containerRegistry.clear();
|
|
136
|
-
logger.info({ releasedLocks, staleRegistrations: staleEntries.length }, "cleaned up stale registrations (no running containers)");
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
catch (err) {
|
|
141
|
-
logger.debug({ err }, "orphan detection/re-adoption skipped (runtime does not support listing)");
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
//# sourceMappingURL=orphan-recovery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"orphan-recovery.js","sourceRoot":"","sources":["../../src/scheduler/orphan-recovery.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAQzD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAWxD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAwB;IACpE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE3F,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAElG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACjE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3D,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,MAAM,GAAG,CAAC,CAAC;YAEf,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE3E,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,gEAAgE;oBAChE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,uCAAuC,CAAC,CAAC;oBACvG,IAAI,CAAC;wBAAC,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAAC,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBACxF,MAAM,EAAE,CAAC;oBACT,SAAS;gBACX,CAAC;gBAED,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;gBACzC,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,oCAAoC,CAAC,CAAC;oBACpG,IAAI,CAAC;wBAAC,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAAC,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBACxF,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAC7C,MAAM,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBACtD,MAAM,EAAE,CAAC;oBACT,SAAS;gBACX,CAAC;gBAED,8CAA8C;gBAC9C,IAAI,cAAkC,CAAC;gBACvC,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;oBAC7B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC3D,cAAc,GAAG,IAAI,EAAE,GAAG,EAAE,eAAe,CAAC;gBAC9C,CAAC;gBAED,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,kDAAkD,CAAC,CAAC;oBAClH,IAAI,CAAC;wBAAC,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAAC,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBACxF,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAC7C,MAAM,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBACtD,MAAM,EAAE,CAAC;oBACT,SAAS;gBACX,CAAC;gBAED,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,yCAAyC,CAAC,CAAC;oBACzG,IAAI,CAAC;wBAAC,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAAC,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBACxF,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAC7C,MAAM,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBACtD,MAAM,EAAE,CAAC;oBACT,SAAS;gBACX,CAAC;gBAED,4EAA4E;gBAC5E,MAAM,QAAQ,GAAI,OAAe,CAAC,QAAQ,CAAC;gBAC3C,IAAI,OAAO,QAAQ,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7E,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,oCAAoC,CAAC,CAAC;oBACpG,IAAI,CAAC;wBAAC,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAAC,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBACxF,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAC7C,MAAM,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBACtD,MAAM,EAAE,CAAC;oBACT,SAAS;gBACX,CAAC;gBAED,8EAA8E;gBAC9E,MAAM,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBAEtD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,8BAA8B,CAAC,CAAC;gBAExH,MAAM,eAAe,GAAG,MAAa,CAAC;gBACtC,IAAI,OAAO,eAAe,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;oBACzD,eAAe;yBACZ,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,UAAmB,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;yBAClH,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,cAAc,CAAC,YAAY;wBAAE,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;yBAC1F,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,2BAA2B,CAAC,CAAC,CAAC;oBACpG,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,kDAAkD,CAAC,CAAC;oBAC7F,IAAI,CAAC;wBAAC,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAAC,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBACxF,MAAM,EAAE,CAAC;gBACX,CAAC;YACH,CAAC;YAED,gFAAgF;YAChF,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;gBACvC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;oBACzC,MAAM,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBAC/E,IAAI,KAAK,EAAE,CAAC;wBACV,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;wBAC7C,MAAM,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wBACzD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,2EAA2E,CAAC,CAAC;oBAC/I,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,oCAAoC,CAAC,CAAC;QAChG,CAAC;aAAM,CAAC;YACN,8DAA8D;YAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACzD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,IAAI,aAAa,GAAG,CAAC,CAAC;gBACtB,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;oBACjC,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAClE,CAAC;gBACD,MAAM,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CACT,EAAE,aAAa,EAAE,kBAAkB,EAAE,YAAY,CAAC,MAAM,EAAE,EAC1D,wDAAwD,CACzD,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,yEAAyE,CAAC,CAAC;IACnG,CAAC;AACH,CAAC"}
|