feat: add environment variables support for agents and collections

- Add envVars field to Agent and Collection models in Prisma schema
- Add envVars to UpdateAgentSchema and UpdateCollectionSchema types
- Implement env vars merging logic (agent overrides collection)
- Pass env vars through tool executor to sandbox
- Add UI for managing env vars in agent and collection settings pages
- Update API routes to handle envVars PATCH updates
- Refactor discord tool execute functions for biome compatibility

This allows users to configure tool-specific environment variables (like
DISCORD_BOT_TOKEN) at both the collection and agent level, with agent
settings taking precedence over collection settings.
This commit is contained in:
Ajax Davis 2026-01-12 01:35:29 +10:00
parent 079c328bfc
commit 938a382aab
25 changed files with 2021 additions and 15 deletions

View file

@ -63,6 +63,8 @@ export const UpdateAgentSchema = z.object({
// Executor configuration
executorType: ExecutorTypeSchema.nullable().optional(),
executorConfig: ExecutorConfigUpdateSchema,
// Tool environment variables
envVars: z.record(z.string(), z.string()).nullable().optional(),
});
export const AddCollectionToAgentSchema = z.object({

View file

@ -44,6 +44,8 @@ export const UpdateCollectionSchema = z.object({
// Executor configuration
executorType: ExecutorTypeSchema.nullable().optional(),
executorConfig: ExecutorConfigUpdateSchema,
// Tool environment variables
envVars: z.record(z.string(), z.string()).nullable().optional(),
});
// ============================================================================