UNPKG

@catladder/pipeline

Version:

Panter workflow for cloud CI/CD and DevOps

49 lines (40 loc) 1.03 kB
import type { Config } from "../../types"; export class AgentContext { constructor( private readonly agentName: string, private readonly config: Config, ) {} public readonly type = "agent"; get name() { return this.agentName; } get agentConfig() { const agentConfig = this.config.agents?.[this.agentName]; if (!agentConfig) { throw new Error(`Agent ${this.agentName} not found in config`); } return agentConfig; } get agentUser() { return { username: this.agentConfig.agentUser?.username ?? "agent.claude", userId: this.agentConfig.agentUser?.userId ?? "$DEFAULT_AGENT_USER_ID", }; } get reviews() { return { byUser: this.agentConfig.reviews?.byUser ?? { [this.agentUser.username]: { automatic: true }, }, }; } get fullConfig() { return this.config; } } export const createAgentContext = async (ctx: { agentName: string; config: Config; }) => { return new AgentContext(ctx.agentName, ctx.config); };