feat(orchestrator): MS23-P1-002 InternalAgentProvider (#719)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com> Co-committed-by: Jason Woltje <jason@diversecanvas.com>
This commit was merged in pull request #719.
This commit is contained in:
@@ -1,10 +1,14 @@
|
||||
import { Injectable } from "@nestjs/common";
|
||||
import type { Prisma } from "@prisma/client";
|
||||
import { KillswitchService } from "../../killswitch/killswitch.service";
|
||||
import { PrismaService } from "../../prisma/prisma.service";
|
||||
|
||||
@Injectable()
|
||||
export class AgentControlService {
|
||||
constructor(private readonly prisma: PrismaService) {}
|
||||
constructor(
|
||||
private readonly prisma: PrismaService,
|
||||
private readonly killswitchService: KillswitchService
|
||||
) {}
|
||||
|
||||
private toJsonValue(value: Record<string, unknown>): Prisma.InputJsonValue {
|
||||
return value as Prisma.InputJsonValue;
|
||||
@@ -13,7 +17,7 @@ export class AgentControlService {
|
||||
private async createOperatorAuditLog(
|
||||
agentId: string,
|
||||
operatorId: string,
|
||||
action: "inject" | "pause" | "resume",
|
||||
action: "inject" | "pause" | "resume" | "kill",
|
||||
payload: Record<string, unknown>
|
||||
): Promise<void> {
|
||||
await this.prisma.operatorAuditLog.create({
|
||||
@@ -65,4 +69,9 @@ export class AgentControlService {
|
||||
|
||||
await this.createOperatorAuditLog(agentId, operatorId, "resume", {});
|
||||
}
|
||||
|
||||
async killAgent(agentId: string, operatorId: string, force = true): Promise<void> {
|
||||
await this.killswitchService.killAgent(agentId);
|
||||
await this.createOperatorAuditLog(agentId, operatorId, "kill", { force });
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user