db0b19bf9d
Add AgentConfigRevision, CostByAgent, SidebarBadges types. Add createAgentHireSchema with source issue linking and linkIssueApprovalSchema. Extend approval validator with issueIds. Update cost summary to generic period naming. Add sidebar badges API path. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
67 lines
2.3 KiB
TypeScript
67 lines
2.3 KiB
TypeScript
import { z } from "zod";
|
|
import {
|
|
AGENT_ADAPTER_TYPES,
|
|
AGENT_ROLES,
|
|
AGENT_STATUSES,
|
|
} from "../constants.js";
|
|
|
|
export const agentPermissionsSchema = z.object({
|
|
canCreateAgents: z.boolean().optional().default(false),
|
|
});
|
|
|
|
export const createAgentSchema = z.object({
|
|
name: z.string().min(1),
|
|
role: z.enum(AGENT_ROLES).optional().default("general"),
|
|
title: z.string().optional().nullable(),
|
|
reportsTo: z.string().uuid().optional().nullable(),
|
|
capabilities: z.string().optional().nullable(),
|
|
adapterType: z.enum(AGENT_ADAPTER_TYPES).optional().default("process"),
|
|
adapterConfig: z.record(z.unknown()).optional().default({}),
|
|
runtimeConfig: z.record(z.unknown()).optional().default({}),
|
|
budgetMonthlyCents: z.number().int().nonnegative().optional().default(0),
|
|
permissions: agentPermissionsSchema.optional(),
|
|
metadata: z.record(z.unknown()).optional().nullable(),
|
|
});
|
|
|
|
export type CreateAgent = z.infer<typeof createAgentSchema>;
|
|
|
|
export const createAgentHireSchema = createAgentSchema.extend({
|
|
sourceIssueId: z.string().uuid().optional().nullable(),
|
|
sourceIssueIds: z.array(z.string().uuid()).optional(),
|
|
});
|
|
|
|
export type CreateAgentHire = z.infer<typeof createAgentHireSchema>;
|
|
|
|
export const updateAgentSchema = createAgentSchema
|
|
.omit({ permissions: true })
|
|
.partial()
|
|
.extend({
|
|
permissions: z.never().optional(),
|
|
status: z.enum(AGENT_STATUSES).optional(),
|
|
spentMonthlyCents: z.number().int().nonnegative().optional(),
|
|
});
|
|
|
|
export type UpdateAgent = z.infer<typeof updateAgentSchema>;
|
|
|
|
export const createAgentKeySchema = z.object({
|
|
name: z.string().min(1).default("default"),
|
|
});
|
|
|
|
export type CreateAgentKey = z.infer<typeof createAgentKeySchema>;
|
|
|
|
export const wakeAgentSchema = z.object({
|
|
source: z.enum(["timer", "assignment", "on_demand", "automation"]).optional().default("on_demand"),
|
|
triggerDetail: z.enum(["manual", "ping", "callback", "system"]).optional(),
|
|
reason: z.string().optional().nullable(),
|
|
payload: z.record(z.unknown()).optional().nullable(),
|
|
idempotencyKey: z.string().optional().nullable(),
|
|
});
|
|
|
|
export type WakeAgent = z.infer<typeof wakeAgentSchema>;
|
|
|
|
export const updateAgentPermissionsSchema = z.object({
|
|
canCreateAgents: z.boolean(),
|
|
});
|
|
|
|
export type UpdateAgentPermissions = z.infer<typeof updateAgentPermissionsSchema>;
|