16 agent tools, event handler for auto-linking, sync job every 15m. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
26 lines
1.1 KiB
JavaScript
26 lines
1.1 KiB
JavaScript
import { z } from "zod";
|
|
import { BILLING_TYPES } from "../constants.js";
|
|
export const createCostEventSchema = z.object({
|
|
agentId: z.string().uuid(),
|
|
issueId: z.string().uuid().optional().nullable(),
|
|
projectId: z.string().uuid().optional().nullable(),
|
|
goalId: z.string().uuid().optional().nullable(),
|
|
heartbeatRunId: z.string().uuid().optional().nullable(),
|
|
billingCode: z.string().optional().nullable(),
|
|
provider: z.string().min(1),
|
|
biller: z.string().min(1).optional(),
|
|
billingType: z.enum(BILLING_TYPES).optional().default("unknown"),
|
|
model: z.string().min(1),
|
|
inputTokens: z.number().int().nonnegative().optional().default(0),
|
|
cachedInputTokens: z.number().int().nonnegative().optional().default(0),
|
|
outputTokens: z.number().int().nonnegative().optional().default(0),
|
|
costCents: z.number().int().nonnegative(),
|
|
occurredAt: z.string().datetime(),
|
|
}).transform((value) => ({
|
|
...value,
|
|
biller: value.biller ?? value.provider,
|
|
}));
|
|
export const updateBudgetSchema = z.object({
|
|
budgetMonthlyCents: z.number().int().nonnegative(),
|
|
});
|
|
//# sourceMappingURL=cost.js.map
|